Perchpush
Security

Your users, your keys,your rules.

Perchpush sends through accounts you own, encrypts every credential you connect, and keeps your data on servers in Germany. Here is exactly how.

Your keys

Runs on accounts you already own.

Pushes go through your own Firebase project and Apple key, email through your SMTP server and texts through your SMS gateway. Perchpush is the conductor, not the owner.

  • No lock-in. Push tokens belong to your Firebase project. If you leave, they keep working with whatever you use next.
  • Your sender reputation. Mail and SMS go out under your own domain and gateway account.
  • Export any time. People, subscriptions, campaigns and recent delivery logs download as CSV.
Connected to your app
firebase-sa.jsonAuthKey_APNs.p8VAPID keyssmtp.yourapp.comSMS gatewayCloudflare AI key (optional)

Each one is sealed with AES-256-GCM before it touches the database.

Encryption

Encrypted in transit and at rest.

TLS everywhere

All traffic to the dashboard, the API and the SDK endpoints is encrypted with TLS.

Sealed credentials

Firebase, APNs, SMTP, SMS, AI and webhook secrets are encrypted with AES-256-GCM under a versioned keyring.

Rotation without downtime

The keyring rotates with one command while sending carries on.

Hashed server keys

Server keys are stored only as a SHA-256 hash. You see a key once, and can rotate it instantly.

Limited client keys

The public key in your app can only register devices and report their own events. Server keys are refused by the SDKs.

Backups

Nightly database backups are kept for 14 days on the server, plus encrypted off-site copies for 30 days.

Access

Six roles and an audit log.

Give each teammate only what they need. Every change to a campaign, key or teammate, and every data export, is recorded in the audit log.

  • Named API keys per service, limited to the send, read or users scopes and an optional IP allowlist.
  • Exports of personal data are limited to the roles that need them.
What each role can do
OwnerEverything, including billing and deleting the app
AdminEverything except billing and deleting the app
DeveloperKeys, credentials, channels, webhooks, audience data
MarketerCampaigns, journeys, in-app, links, segments
AnalystRead-only analytics and exports
ViewerRead-only
Built-in safeguards

Protection you don’t have to switch on.

Signed identity

Your server signs each user id with HMAC-SHA256. With “Require signed identify()” on, unsigned calls are rejected, so nobody can pose as one of your users.

Signed webhooks

Every webhook carries a Perchpush-Signature header with a timestamp and an HMAC of the body, so your server can reject anything forged or replayed.

Safe outbound calls

Webhooks, SMS gateways and mail servers can only be public internet addresses on safe ports, with no redirects followed.

Tenant isolation

Every query is scoped to an app the caller belongs to, and automated isolation tests run against each release before it goes live.

Rate limits and headers

Rate limits per key and per IP address, security headers on every page, and dependency updates for known vulnerabilities.

Less data, by design

Tracking-link clicks store a daily-salted hash of the IP address, not the address. Attributes you store are never returned to the client.

Data protection

Hosted in the EU, kept only as long as needed.

  • Germany (EU). Servers, database and backups are hosted by Hetzner.
  • Retention you set. Delivery logs, events and inbox messages are deleted after each app’s retention window: 90 days by default, adjustable from 7 to 730.
  • Erasure on request. Erase one person, or delete an app and all of its data at once.
  • GDPR-ready DPA. Article 28 terms, Standard Contractual Clauses for transfers, and breach notice within 72 hours.

Full details in the privacy policy and the Data Processing Agreement.

Our sub-processors
Hetzner Online GmbHServers, database and backupsGermany (EU)
Cloudflare, Inc.DNS and the optional AI featuresGlobal network; USA
Google LLCSign in with GoogleUSA
StripeCard paymentsUSA / Ireland (EU)
PurelymailService emails such as sign-in links and receiptsUSA

Sub-processors, purposes and change notices

Responsible disclosure

Found a security issue?

Email us the details and the steps to reproduce it. Please give us a reasonable time to fix it before you share it publicly.

security@neptechpal.com.np
FAQ

Security questions.

Where is my data stored?

Perchpush servers, database and backups are hosted by Hetzner in Germany (EU). The few providers that process data for us are listed with their purpose and location on the sub-processors page.

Do you offer a Data Processing Agreement?

Yes. The DPA meets Article 28 of the EU and UK GDPR and takes effect when you accept the Terms, with no signature needed. Email us if you want a countersigned copy.

Can I delete a user’s data?

Yes. “Erase” on a person’s page, or DELETE /users/:id from your server, removes the person, their devices, events, delivery logs and inbox. Deleting an app deletes all of its data at once.

How do I report a vulnerability?

Email security@neptechpal.com.np with the details. Please give us a reasonable time to fix it before sharing it publicly.

Your keys, your data

Messaging you can
stand behind.

Start free, connect your own Firebase key, and keep full control of your users and tokens.