Skip to Content
API ReferencePush Notification

Push Notification (FCM)

Endpoint untuk register dan kelola Firebase Cloud Messaging token. Semua endpoint di bagian ini memerlukan JWT authentication.

Info: Alur: Login → Firebase SDK generate token → POST /notifications/fcm register → Backend otomatis kirim notifikasi ke device. Saat logout → DELETE /notifications/fcm unregister.


POST /notifications/fcm

Register FCM token untuk menerima push notification.

Request Body

FieldTipeWajibKeterangan
tokenstringYaFCM token dari Firebase SDK
deviceIdstringTidakIdentifier unik device
deviceNamestringTidakNama device (untuk display)
platformstringYa"android" atau "ios"
appVersionstringTidakVersi aplikasi

Contoh Request

curl -X POST https://fumai.app/api/mobile/v1/notifications/fcm \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "token": "fcm_token_dari_firebase_sdk", "deviceId": "unique_device_identifier", "deviceName": "Samsung Galaxy S24", "platform": "android", "appVersion": "1.0.0" }'
const res = await fetch('https://fumai.app/api/mobile/v1/notifications/fcm', { method: 'POST', headers: { Authorization: `Bearer ${accessToken}`, 'Content-Type': 'application/json', }, body: JSON.stringify({ token: fcmToken, deviceId: deviceId, deviceName: 'Samsung Galaxy S24', platform: 'android', appVersion: '1.0.0', }), }) const data = await res.json()

Response 200

{ "success": true, "tokenId": "clx..." }

Behavior

  • Jika token sudah ada → update data (upsert)
  • Jika deviceId sudah ada dengan token berbeda → deactivate token lama (token refresh scenario)

GET /notifications/fcm

Mendapatkan daftar device yang terdaftar untuk push notification.

Contoh Request

curl -X GET https://fumai.app/api/mobile/v1/notifications/fcm \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN"
const res = await fetch('https://fumai.app/api/mobile/v1/notifications/fcm', { headers: { Authorization: `Bearer ${accessToken}` }, }) const data = await res.json()

Response 200

{ "success": true, "devices": [ { "id": "clx...", "deviceId": "device-uuid", "deviceName": "Samsung Galaxy S24", "platform": "android", "appVersion": "1.0.0", "lastUsed": "2026-02-26T10:00:00Z", "createdAt": "2026-02-25T08:00:00Z" } ] }

DELETE /notifications/fcm

Unregister FCM token (biasanya dipanggil saat logout).

Query Parameters

ParameterTipeWajibKeterangan
tokenstringYaFCM token yang ingin dihapus

Contoh Request

curl -X DELETE "https://fumai.app/api/mobile/v1/notifications/fcm?token=FCM_TOKEN" \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN"
const res = await fetch( `https://fumai.app/api/mobile/v1/notifications/fcm?token=${fcmToken}`, { method: 'DELETE', headers: { Authorization: `Bearer ${accessToken}` }, } ) const data = await res.json()

Response 200

{ "success": true, "deleted": 1 }

Tipe Push Notification

Backend otomatis mengirim push notification untuk event berikut (tidak perlu subscribe manual):

EventContoh
BookingBooking confirmed, reminder
ChatPesan baru
FitMatchNew match, new like
Sport BuddyRequest baru, accepted
CommunityPost reply, mention
GamificationAchievement unlocked, level up
FastingTimer selesai
AdminBroadcast notification
Last updated on