Notifications — test delivery and logs
Send a test alert to this device and review per-device delivery status. Push works in the installed iOS and Android apps; the browser build shows registration status only.
Setup checklist
Checking setup status…
Register a device token manually
The token is generated on the phone itself, so it has to come from the installed app. In Android Studio open Logcat and filter for FCM or registration, copy the long token string, and paste it here to register it server-side.
How to store the secrets
Use these exact field names in your backend secrets store. The names must match character-for-character.
Secret name
FIREBASE_SERVICE_ACCOUNTValue: paste the entire contents of the Firebase service-account JSON file you downloaded from Firebase console → Project settings → Service accounts → Generate new private key.
Secret name
PUSH_ADMIN_SECRETValue: any strong random string you choose. This same value is sent as the x-push-secret header when triggering a broadcast.
Example broadcast command
curl -X POST https://myserialpay.com/api/public/push/send \
-H "Content-Type: application/json" \
-H "x-push-secret: <your PUSH_ADMIN_SECRET>" \
-d '{"title":"Hello","body":"Test broadcast","url":"/notifications"}'Build and install the iOS app
Requires a Mac with Xcode 15+, an Apple Developer account, and a physical iPhone. Run these from the project folder you cloned from GitHub.
git clone <your-github-repo-url> serialpay cd serialpay npm install npm run build npx cap sync ios npx cap open ios
- In Firebase console, add an iOS app with bundle ID
app.lovable.serialpay, downloadGoogleService-Info.plistand drag it into theApptarget in Xcode (check "Copy items if needed"). - In Firebase → Project settings → Cloud Messaging → Apple app configuration, upload your APNs authentication key (
.p8) from the Apple Developer portal, along with the key ID and your team ID. - In Xcode → Signing & Capabilities, pick your team, then add Push Notifications and Background Modes → Remote notifications.
- Select your connected iPhone as the run destination and press Run. The simulator cannot receive remote notifications.
- On first launch trust the developer certificate: iPhone → Settings → General → VPN & Device Management → your Apple ID → Trust.
Register a device token in the iOS app
- Open the project in Xcode: double-click
ios/App/App.xcodeproj. - Select your Apple Developer team, set the bundle identifier to
app.lovable.serialpay, and enable the Push Notifications capability in Signing & Capabilities. - Build and run the app on a physical iPhone. The simulator cannot receive remote notifications.
- When the app launches, tap Allow on the system notifications permission prompt. The app registers the token automatically in the background.
- Open this Notifications page in the app (or on the web). The "This device" section above shows the token fingerprint once registration succeeds.
- To confirm it on the server, enter your
PUSH_ADMIN_SECRETabove and click Load log. The registered device appears under "Registered devices" with platformios.
Register a device token in the Android app
- Open the project in Android Studio: choose Open and select the
androidfolder. - Let Gradle sync complete. The package name is already set to
app.lovable.serialpay. - Build and run the app on a physical Android phone. Emulators can receive push, but a real device is the best test.
- When the app launches, tap Allow on the notifications permission prompt. The app registers the FCM token automatically in the background.
- Open this Notifications page in the app (or on the web). The "This device" section above shows the token fingerprint once registration succeeds.
- To confirm it on the server, enter your
PUSH_ADMIN_SECRETabove and click Load log. The registered device appears under "Registered devices" with platformandroid.
This device
No push token on this device yet. Open the SerialPay app on iOS or Android and allow notifications — the token registers automatically.
Admin delivery log
Enter the push admin secret to view recent sends, per-device delivery results and registered devices.