REST API Documentation
Base URL: https://api.jwi.id/api
Generated at 2026-02-06 11:46:15
Bearer token (JWT)
Authorization: Bearer {token}
Token didapat dari endpoint login/register dan digunakan di endpoint yang memakai middleware auth:api. Untuk endpoint billing non-login gunakan header X-MYWIFI-KEY.
API Key: API key dikelola admin. Hubungi admin untuk mendapatkan atau mengaktifkan key.
- Gunakan header
Accept: application/jsonuntuk mendapatkan versi JSON. - Tambahkan header Authorization untuk semua endpoint yang membutuhkan autentikasi.
- Path pada tabel sudah termasuk prefix
/api.
Auth
9 endpointshttps://api.jwi.id/api/auth/register
No auth
Registrasi user baru sekaligus mengembalikan token login.
| Field | Type | Required | Note |
|---|---|---|---|
name |
string | required | Max 255 |
email |
required | Unik di tabel user | |
password |
string | required | Min 6, sertakan password_confirmation |
phone |
integer | required | Digit saja, 8-15 digit |
phonecode |
integer | required | Digit saja, 1-5 digit |
address |
string | optional | |
gender |
string | optional | Male atau Female |
image |
string | optional | Path gambar, default default1.jpg |
| Status | Description |
|---|---|
| 201 | Token bearer + data user yang baru dibuat. |
| 422 | Validasi gagal. |
{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"token_type": "bearer",
"expires_in": 3600,
"data": {
"uid": "2f0d1e6b-1234-4c9f-bc36-6e5d4fabc001",
"name": "John Doe",
"email": "john@example.com",
"phone": 628123456789,
"phonecode": 62,
"address": "Jl. Merdeka 123",
"image": "default1.jpg",
"is_active": true,
"gender": "Male",
"role_name": "Customer"
}
}
{
"message": "The given data was invalid.",
"errors": {
"email": [
"Email sudah terdaftar."
]
}
}
https://api.jwi.id/api/auth/login
No auth
Login menggunakan email atau no_services dan password.
| Field | Type | Required | Note |
|---|---|---|---|
identifier |
string | required | Email atau nomor layanan |
password |
string | required |
| Status | Description |
|---|---|
| 200 | Token bearer + data user. |
| 422 | Email atau password salah. |
{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"token_type": "bearer",
"expires_in": 3600,
"data": {
"uid": "2f0d1e6b-1234-4c9f-bc36-6e5d4fabc001",
"name": "John Doe",
"email": "john@example.com",
"phone": 628123456789,
"phonecode": 62,
"address": "Jl. Merdeka 123",
"image": "default1.jpg",
"is_active": true,
"gender": "Male",
"role_name": "Customer"
}
}
{
"message": "The given data was invalid.",
"errors": {
"email": [
"Email atau password tidak sesuai."
]
}
}
https://api.jwi.id/api/auth/forgot-password
No auth
Membuat OTP reset password menggunakan no_services pelanggan.
| Field | Type | Required | Note |
|---|---|---|---|
no_services |
string | required | ID pelanggan/no_services |
| Status | Description |
|---|---|
| 200 | OTP dibuat dan disimpan di tabel user_token. |
| 404 | Data pelanggan tidak ditemukan. |
{
"status": "success",
"message": "Kode OTP berhasil dibuat.",
"destination": "628123456789",
"otp": "123456"
}
{
"status": "not_found",
"message": "Data pelanggan tidak ditemukan."
}
https://api.jwi.id/api/auth/verify-otp
No auth
Verifikasi kode OTP reset password.
| Field | Type | Required | Note |
|---|---|---|---|
no_services |
string | required | ID pelanggan/no_services |
otp |
string | required | Kode OTP yang diterima (berlaku 5 menit) |
| Status | Description |
|---|---|
| 200 | OTP valid dan dihapus dari tabel user_token. |
| 404 | Data pelanggan tidak ditemukan. |
| 422 | OTP tidak valid atau nomor tujuan tidak tersedia. |
{
"status": "success",
"message": "Kode OTP valid."
}
{
"status": "failed",
"message": "Kode OTP tidak valid atau sudah digunakan."
}
https://api.jwi.id/api/auth/reset-password
No auth
Reset password menggunakan OTP yang valid.
| Field | Type | Required | Note |
|---|---|---|---|
no_services |
string | required | ID pelanggan/no_services |
otp |
string | required | Kode OTP yang diterima (berlaku 5 menit) |
password |
string | required | Min 6 |
password_confirmation |
string | required | Sama dengan password |
| Status | Description |
|---|---|
| 200 | Password berhasil direset. |
| 404 | Data pelanggan atau user tidak ditemukan. |
| 422 | OTP tidak valid atau nomor tujuan tidak tersedia. |
{
"status": "success",
"message": "Password berhasil direset."
}
{
"status": "failed",
"message": "Kode OTP tidak valid atau sudah digunakan."
}
https://api.jwi.id/api/auth/me
Auth required
Mengambil profil user yang sedang login.
{
"uid": "2f0d1e6b-1234-4c9f-bc36-6e5d4fabc001",
"name": "John Doe",
"email": "john@example.com",
"phone": 628123456789,
"phonecode": 62,
"address": "Jl. Merdeka 123",
"image": "default1.jpg",
"is_active": true,
"gender": "Male",
"role_name": "Customer"
}
{
"message": "Unauthenticated."
}
https://api.jwi.id/api/auth/logout
Auth required
Logout dan mencabut token aktif.
{
"message": "Berhasil logout."
}
{
"message": "Unauthenticated."
}
https://api.jwi.id/api/auth/refresh
Auth required
Mendapatkan token baru dari token lama.
{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"token_type": "bearer",
"expires_in": 3600,
"data": {
"uid": "2f0d1e6b-1234-4c9f-bc36-6e5d4fabc001",
"name": "John Doe",
"email": "john@example.com",
"phone": 628123456789,
"phonecode": 62,
"address": "Jl. Merdeka 123",
"image": "default1.jpg",
"is_active": true,
"gender": "Male",
"role_name": "Customer"
}
}
{
"message": "Unauthenticated."
}
https://api.jwi.id/api/auth/change-password
Auth required
Mengubah password user.
| Field | Type | Required | Note |
|---|---|---|---|
current_password |
string | required | |
password |
string | required | Min 6, sertakan password_confirmation |
| Status | Description |
|---|---|
| 200 | Password diperbarui. |
| 422 | Password lama salah atau validasi gagal. |
{
"message": "Password berhasil diperbarui."
}
{
"message": "The given data was invalid.",
"errors": {
"current_password": [
"Password lama tidak sesuai."
]
}
}
Region
1 endpointshttps://api.jwi.id/api/region
No auth
Daftar region (data dari tabel company).
| Status | Description |
|---|---|
| 200 | Daftar region ditemukan. |
{
"status": "success",
"message": "Data perusahaan ditemukan.",
"data": [
{
"id": 1,
"name": "Region Jakarta"
}
]
}
Package
1 endpointshttps://api.jwi.id/api/package
No auth
Daftar paket aktif dan public berdasarkan company_id (category berisi data package_category).
| Field | Type | Required | Note |
|---|---|---|---|
company_id |
integer | required |
| Status | Description |
|---|---|
| 200 | Data paket ditemukan. |
| 422 | Validasi gagal. |
{
"status": "success",
"message": "Data paket ditemukan.",
"data": [
{
"id": 12,
"name": "Home 50 Mbps",
"price": 300000,
"description": "Unlimited broadband",
"category_id": 3,
"category": {
"id": 3,
"name": "Internet"
},
"public": 1,
"is_active": 1,
"company_id": 1
}
]
}
{
"message": "The given data was invalid.",
"errors": {
"company_id": [
"The company id field is required."
]
}
}
Customer
8 endpointshttps://api.jwi.id/api/customer
Auth required
Detail pelanggan beserta layanan aktif.
| Status | Description |
|---|---|
| 200 | Data pelanggan ditemukan. |
| 404 | Pelanggan belum terdaftar. |
{
"status": "success",
"message": "Data pelanggan ditemukan.",
"customer": {
"uid": "cst-001",
"name": "John Doe",
"email": "john@example.com",
"phone": 628123456789,
"no_services": "ISP00123",
"address": "Jl. Fiber No. 1",
"address_verified_date": "2023-01-12",
"register_date": "2023-01-10",
"activation_date": "2023-01-11",
"email_verified_date": "2023-01-12",
"id_card_verified_date": null,
"id_type_id": 1,
"id_type": "Identity Card (KTP)",
"id_number": "3201010101010001",
"status": "active",
"service": {
"qty": 1,
"price": 300000,
"total": 300000,
"package": {
"name": "Home 50 Mbps",
"description": "Unlimited broadband"
}
}
}
}
{
"status": "not_subscribed",
"message": "Pengguna belum memiliki data pelanggan terdaftar."
}
https://api.jwi.id/api/customer
Auth required
Mendaftarkan user login ke tabel customer dan membuat layanan awal.
| Field | Type | Required | Note |
|---|---|---|---|
package_id |
integer | required | |
company_id |
integer | required | |
id_type_id |
integer | required | |
id_number |
string | required | Max 20 |
latitude |
numeric | optional | |
longitude |
numeric | optional |
| Status | Description |
|---|---|
| 201 | Pelanggan berhasil dibuat. |
| 409 | Pelanggan sudah terdaftar. |
| 404 | Paket tidak ditemukan. |
| 422 | Validasi gagal. |
{
"status": "success",
"message": "Pelanggan berhasil dibuat.",
"customer": {
"no_services": "1700000000",
"name": "John Doe",
"email": "john@example.com"
}
}
{
"status": "already_subscribed",
"message": "Pengguna sudah terdaftar sebagai pelanggan.",
"no_services": "1700000000"
}
{
"status": "not_found",
"message": "Paket layanan tidak ditemukan."
}
https://api.jwi.id/api/customer/id-types
Auth required
Daftar tipe identitas (KTP/Passport/SIM, dsb) untuk diisi pelanggan.
| Status | Description |
|---|---|
| 200 | Daftar tipe identitas tersedia. |
{
"status": "success",
"message": "Identification types retrieved.",
"id_types": [
{
"id": 1,
"name": "Identity Card (KTP)"
},
{
"id": 2,
"name": "Passport"
},
{
"id": 3,
"name": "Driving License (SIM)"
}
]
}
{
"message": "Unauthenticated."
}
https://api.jwi.id/api/customer/change-id-card
Auth required
Memperbarui tipe identitas dan nomor identitas pelanggan.
| Field | Type | Required | Note |
|---|---|---|---|
id_type_id |
integer | required | exists:m_id_card,id |
id_number |
string | required | Max 20 characters |
| Status | Description |
|---|---|
| 200 | Data identitas berhasil diperbarui. |
| 404 | Pelanggan belum terdaftar. |
| 422 | Validasi gagal. |
| 403 | Identitas sudah diverifikasi, hubungi admin. |
{
"status": "success",
"message": "Identification updated.",
"customer": {
"id_type_id": 1,
"id_type": "Identity Card (KTP)",
"id_number": "3201010101010001"
}
}
{
"status": "forbidden",
"message": "Data identitas sudah diverifikasi. Silakan hubungi admin untuk perubahan."
}
{
"message": "The given data was invalid.",
"errors": {
"id_type_id": [
"The selected id type id is invalid."
]
}
}
https://api.jwi.id/api/customer/email
Auth required
Memperbarui email pelanggan (mengubah email di tabel customer dan user).
| Field | Type | Required | Note |
|---|---|---|---|
email |
required | Unique di tabel user dan customer |
| Status | Description |
|---|---|
| 200 | Email berhasil diperbarui. |
| 404 | Pelanggan belum terdaftar. |
| 422 | Validasi gagal (email sudah dipakai). |
| 403 | Email sudah diverifikasi, hubungi admin. |
{
"status": "success",
"message": "Email berhasil diperbarui.",
"customer": {
"email": "new@example.com"
}
}
{
"status": "forbidden",
"message": "Email sudah diverifikasi. Silakan hubungi admin untuk perubahan."
}
{
"message": "The given data was invalid.",
"errors": {
"email": [
"Email sudah digunakan."
]
}
}
https://api.jwi.id/api/customer/address
Auth required
Memperbarui alamat pelanggan.
| Field | Type | Required | Note |
|---|---|---|---|
address |
string | required | Max 255 characters |
| Status | Description |
|---|---|
| 200 | Alamat berhasil diperbarui. |
| 404 | Pelanggan belum terdaftar. |
| 422 | Validasi gagal. |
| 403 | Alamat sudah diverifikasi, hubungi admin. |
{
"status": "success",
"message": "Alamat berhasil diperbarui.",
"customer": {
"address": "Jl. Baru No. 99"
}
}
{
"status": "forbidden",
"message": "Alamat sudah diverifikasi. Silakan hubungi admin untuk perubahan."
}
https://api.jwi.id/api/customer/phone
Auth required
Memperbarui nomor telepon pelanggan (phonecode dan nomor WA).
| Field | Type | Required | Note |
|---|---|---|---|
phonecode |
integer | required | Digit saja, 1-5 digit. Jika diisi 08 akan otomatis menjadi 62 |
phone |
integer | required | Digit saja, 8-15 digit |
| Status | Description |
|---|---|
| 200 | Nomor telepon berhasil diperbarui. |
| 404 | Pelanggan belum terdaftar. |
| 422 | Validasi gagal. |
{
"status": "success",
"message": "Nomor telepon berhasil diperbarui.",
"customer": {
"phonecode": 62,
"phone": 8123456789
}
}
{
"message": "The given data was invalid.",
"errors": {
"phone": [
"The phone field is required."
]
}
}
https://api.jwi.id/api/customer/network-status
Auth required
Ambil status koneksi Mikrotik berdasarkan no_services. Bisa memilih bagian: connection / usage / session.
| Field | Type | Required | Note |
|---|---|---|---|
no_services |
string | required | ID pelanggan/no_services |
sections |
array | optional | Isi salah satu/lebih: connection, usage, session. Jika kosong akan mengembalikan semua. |
| Status | Description |
|---|---|
| 200 | Status berhasil diambil. |
| 404 | Pelanggan atau router tidak ditemukan. |
| 503 | Router tidak bisa dihubungi. |
| 403 | No layanan tidak sesuai akun login. |
{
"status": "success",
"message": "Status pelanggan berhasil diambil.",
"data": {
"no_services": "ISP00123",
"name": "John Doe",
"mode": "PPPOE",
"router": {
"alias": "RT-01"
},
"customer": {
"user_mikrotik": "john_pppoe",
"user_profile": "REG50M"
},
"connection": {
"status": "online",
"is_online": true,
"ip_address": "10.10.10.2",
"uptime": {
"raw": "1d2h3m4s",
"seconds": 93784,
"human": "1d 2h 3m 4s"
},
"notes": []
},
"usage": {
"upload_bytes": 125000,
"download_bytes": 250000,
"total_bytes": 375000
},
"session": {
"total": 2,
"active": true,
"active_session": {
"id": "R123456",
"uptime": {
"raw": "2h1m",
"seconds": 7260,
"human": "2h 1m"
},
"download_bytes": 150000,
"upload_bytes": 75000,
"nas_ip": "10.10.10.1",
"caller_id": "aa:bb:cc:dd:ee:ff"
},
"totals": {
"uptime_seconds": 94000,
"download_bytes": 450000,
"upload_bytes": 200000
}
}
}
}
{
"status": "success",
"message": "Status pelanggan berhasil diambil.",
"data": {
"no_services": "ISP00123",
"name": "John Doe",
"mode": "PPPOE",
"router": {
"alias": "RT-01"
},
"customer": {
"user_mikrotik": "john_pppoe",
"user_profile": "REG50M"
},
"connection": {
"status": "online",
"is_online": true,
"ip_address": "10.10.10.2",
"uptime": {
"raw": "1d2h3m4s",
"seconds": 93784,
"human": "1d 2h 3m 4s"
},
"notes": []
},
"usage": null,
"session": null
}
}
{
"status": "not_found",
"message": "Pelanggan tidak ditemukan."
}
Helpdesk
5 endpointshttps://api.jwi.id/api/help
Auth required
Daftar tiket bantuan pelanggan.
| Field | Type | Required | Note |
|---|---|---|---|
status |
string | optional | Pisahkan koma, default pending,process. Gunakan all untuk tanpa filter. |
year |
integer | optional | Default tahun berjalan. |
{
"status": "success",
"message": "Data bantuan ditemukan.",
"customer": {
"name": "John Doe",
"no_services": "ISP00123",
"email": "john@example.com"
},
"data": [
{
"id": 1,
"no_ticket": "240101001",
"no_services": "ISP00123",
"description": "Internet down sejak pagi.",
"status": "pending",
"date_help": "2024-01-01",
"created_at": "2024-01-01 10:00:00",
"help_type": {
"name": "Gangguan koneksi"
},
"help_solution": {
"name": "Restart modem"
}
}
]
}
{
"status": "not_subscribed",
"message": "Pengguna belum memiliki data pelanggan terdaftar."
}
https://api.jwi.id/api/help/options
Auth required
Pilihan tipe bantuan dan solusi.
{
"status": "success",
"message": "Daftar tipe dan solusi bantuan.",
"help_types": [
{
"id": 1,
"name": "Gangguan koneksi"
}
],
"help_solutions": [
{
"id": 1,
"name": "Restart modem",
"solution": "Silakan matikan lalu nyalakan router.",
"help_id": 1
}
]
}
https://api.jwi.id/api/help
Auth required
Membuat tiket bantuan baru.
| Field | Type | Required | Note |
|---|---|---|---|
help_type |
integer | required | exists:help_type,help_id |
help_solution |
integer | required | exists:help_solution,hs_id |
description |
string | required |
| Status | Description |
|---|---|
| 201 | Tiket berhasil dibuat. |
| 404 | Pelanggan belum terdaftar. |
{
"status": "success",
"message": "Tiket bantuan berhasil dibuat.",
"data": {
"id": 2,
"no_ticket": "240101002",
"help_type": {
"name": "Gangguan koneksi"
},
"help_solution": {
"name": "Restart modem"
},
"description": "Internet sering putus-putus.",
"status": "pending",
"date_help": "2024-01-01"
}
}
{
"status": "not_subscribed",
"message": "Pengguna belum memiliki data pelanggan terdaftar."
}
https://api.jwi.id/api/help/timeline
Auth required
Timeline tiket bantuan tertentu.
| Field | Type | Required | Note |
|---|---|---|---|
id |
integer | optional | Wajib isi id atau no_ticket |
no_ticket |
string | optional |
| Status | Description |
|---|---|
| 200 | Timeline ditemukan. |
| 404 | Tiket tidak ditemukan. |
| 422 | Parameter id/no_ticket wajib ada salah satu. |
{
"status": "success",
"message": "Timeline tiket bantuan ditemukan.",
"ticket": {
"id": 1,
"no_ticket": "240101001"
},
"data": [
{
"remark": "Tiket dibuat oleh pelanggan.",
"status": "pending",
"teknisi": "John Doe",
"updated_at": "2024-01-01 10:00:00"
},
{
"remark": "Teknisi sedang menuju lokasi.",
"status": "process",
"teknisi": "Admin Helpdesk",
"updated_at": "2024-01-01 11:30:00"
}
]
}
{
"status": "not_found",
"message": "Tiket bantuan tidak ditemukan untuk pelanggan ini."
}
https://api.jwi.id/api/help/close
Auth required
Menutup tiket bantuan.
| Field | Type | Required | Note |
|---|---|---|---|
id |
integer | optional | |
no_ticket |
string | optional | |
remark |
string | required |
| Status | Description |
|---|---|
| 200 | Tiket ditutup. |
| 404 | Tiket tidak ditemukan. |
| 422 | Parameter id/no_ticket wajib ada salah satu. |
{
"status": "success",
"message": "Tiket bantuan telah ditutup.",
"ticket": {
"id": 1,
"no_ticket": "240101001"
},
"timeline": {
"remark": "Tiket ditutup oleh pelanggan.",
"status": "closed",
"teknisi": "John Doe",
"action": "by customer",
"updated_at": "2024-01-01 12:00:00"
}
}
{
"status": "not_found",
"message": "Tiket bantuan tidak ditemukan untuk pelanggan ini."
}
Invoice
1 endpointshttps://api.jwi.id/api/invoice
Auth required
Daftar tagihan pelanggan.
| Field | Type | Required | Note |
|---|---|---|---|
status |
string | optional | Isi all untuk semua status. |
month |
integer | optional | |
year |
integer | optional |
| Status | Description |
|---|---|
| 200 | Data tagihan ditemukan. |
| 404 | Pelanggan belum terdaftar. |
{
"status": "success",
"message": "Data tagihan ditemukan.",
"customer": {
"name": "John Doe",
"no_services": "ISP00123",
"email": "john@example.com"
},
"data": [
{
"invoice": "INV-2401-001",
"month": 1,
"year": 2024,
"status": "unpaid",
"due_date": "2024-01-10",
"amount": 350000,
"tax": 0,
"discount": 0,
"period": "January 2024",
"payment_codes": {
"va_bni": "999001ISP00123",
"alfamart": "ALFAISP00123",
"indomaret": "INDOISP00123"
},
"details": [
{
"name": "Paket Internet 50 Mbps",
"price": 300000,
"qty": 1,
"disc": 0,
"total": 300000
},
{
"name": "PPN",
"price": 50000,
"qty": 1,
"disc": 0,
"total": 50000
}
]
}
]
}
{
"status": "not_subscribed",
"message": "Pengguna belum memiliki data pelanggan terdaftar."
}
Billing (API Key)
3 endpointshttps://api.jwi.id/api/billing/detail
No auth
Ambil semua tagihan (termasuk yang sudah bayar) berdasarkan nomor layanan.
| Name | Required | Note |
|---|---|---|
X-MYWIFI-KEY |
required | API key dari tabel keys |
| Field | Type | Required | Note |
|---|---|---|---|
no_services |
string | required |
curl -X GET "https://api.jwi.id/api/billing/detail?no_services=28900001" -H "X-MYWIFI-KEY: YOUR_KEY"
| Status | Description |
|---|---|
| 200 | Data tagihan ditemukan. |
| 404 | Tidak ada tagihan untuk nomor layanan ini. |
| 400 | Parameter no_services kosong. |
| 403 | API key atau IP tidak diizinkan. |
{
"status": true,
"data": [
{
"invoice": 230130001,
"month": 1,
"year": 2023,
"period": "January 2023",
"name": "John Doe",
"no_services": "ISP00123",
"amount": 277500,
"status": "BELUM BAYAR",
"due_date": "2023-01-10",
"isolir_date": "2023-01-20",
"payment_date": null,
"detail": [
{
"price": 250000,
"qty": 1,
"disc": 0,
"total": 250000,
"name": "Internet 50 Mbps",
"category": "Internet",
"remark": "-"
},
{
"price": 27500,
"qty": 1,
"disc": 0,
"total": 27500,
"name": "PPN",
"category": "Tax",
"remark": "-"
}
]
}
]
}
{
"status": false,
"message": "Tagihan tidak ditemukan untuk nomor layanan ini"
}
https://api.jwi.id/api/billing/unpaid
No auth
Ambil semua tagihan yang belum dibayar berdasarkan nomor layanan.
| Name | Required | Note |
|---|---|---|
X-MYWIFI-KEY |
required | API key dari tabel keys |
| Field | Type | Required | Note |
|---|---|---|---|
no_services |
string | required |
curl -X GET "https://api.jwi.id/api/billing/unpaid?no_services=28900001" -H "X-MYWIFI-KEY: YOUR_KEY"
| Status | Description |
|---|---|
| 200 | Data tagihan ditemukan. |
| 404 | Tidak ada tagihan belum dibayar. |
| 400 | Parameter no_services kosong. |
| 403 | API key atau IP tidak diizinkan. |
{
"status": true,
"data": [
{
"invoice": 230130001,
"month": 1,
"year": 2023,
"period": "January 2023",
"name": "John Doe",
"no_services": "ISP00123",
"amount": 277500,
"status": "BELUM BAYAR",
"due_date": "2023-01-10",
"isolir_date": "2023-01-20",
"payment_date": null,
"detail": [
{
"price": 250000,
"qty": 1,
"disc": 0,
"total": 250000,
"name": "Internet 50 Mbps",
"category": "Internet",
"remark": "-"
},
{
"price": 27500,
"qty": 1,
"disc": 0,
"total": 27500,
"name": "PPN",
"category": "Tax",
"remark": "-"
}
]
}
]
}
{
"status": false,
"message": "Tidak ada tagihan yang belum dibayar untuk nomor layanan ini"
}
https://api.jwi.id/api/billing/mark-as-paid
No auth
Set status tagihan menjadi SUDAH BAYAR berdasarkan invoice + no_services + reference_no.
| Name | Required | Note |
|---|---|---|
X-MYWIFI-KEY |
required | API key dari tabel keys |
| Field | Type | Required | Note |
|---|---|---|---|
invoice |
string | required | |
no_services |
string | required | |
reference_no |
string | required | Nomor referensi dari payment |
curl -X POST "https://api.jwi.id/api/billing/mark-as-paid" -H "X-MYWIFI-KEY: YOUR_KEY" -H "Content-Type: application/json" -d '{"invoice":"230130001","no_services":"28900001","reference_no":"REF123456"}'
| Status | Description |
|---|---|
| 200 | Status diperbarui. |
| 404 | Tagihan tidak ditemukan. |
| 409 | Tagihan sudah dibayar. |
| 400 | Parameter wajib tidak lengkap. |
| 403 | API key atau IP tidak diizinkan. |
{
"status": true,
"message": "Tagihan berhasil diperbarui menjadi sudah dibayar"
}
{
"status": false,
"message": "Tagihan sudah dibayar"
}