Security & vulnerability disclosure

If you’ve found a security issue in RevenuePoint or anything we run, here’s how to reach us safely. We take every report seriously, respond fast, and credit researchers who help us ship a fix.

How we protect client data.

  • Least privilege. We ask only for the access the work needs, and we don’t copy client data unless the engagement requires it.
  • Encrypted in transit and at rest. TLS 1.2 or higher on every connection; databases, disks, and backups are encrypted with keys that rotate automatically.
  • Each client kept separate. On the RevenuePoint Platform every client’s data sits in its own warehouse schema, read through credentials that see only that client, with row-level security in the application.
  • Individual accounts and roles. No shared logins. MFA is required on our accounts that touch client systems and available to every platform user.
  • Locked-down hosting. US-hosted. Databases aren’t reachable from the internet, admin access runs through audited sessions, and daily backups are copied to a separate, locked account.
  • AI features see what you see. Otto and the AI connector are limited to what the signed-in user can already see. Data reaches a model only when someone asks a question.
  • Incidents. We contain, notify the affected client, investigate, fix, and send a written summary.

The full policy also covers credentials, devices, retention, subcontractors, and the engagement lifecycle: Data Security Policy (PDF).

How to report a vulnerability.

Email [email protected]. Encrypt with our PGP key if you can — it’s below. Plain email is fine if you can’t. Don’t use [email protected] for security reports; that inbox isn’t monitored for vulnerabilities.

PGP public key.

Use this key to encrypt sensitive details. Verify the fingerprint matches before you trust it.

Fingerprint
A4BD C321 4EF3 EB9F CA6A E7FC D765 B501 DFBD D860
Identity
RevenuePoint Security <[email protected]>
File
revenuepoint.com/pgp-key.asc
-----BEGIN PGP PUBLIC KEY BLOCK-----

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
KerFA0bgwlmImJeNDwhQuL9f1W9GoVU7/A==
=BbMb
-----END PGP PUBLIC KEY BLOCK-----

What to include.

  • A clear description of the issue and why it matters.
  • Reproduction steps — URLs, payloads, headers, or accounts you used. Screenshots are welcome.
  • Impact — what an attacker could do (data exposure, account takeover, code execution, etc.).
  • The affected surface (revenuepoint.com, the RevenuePoint Platform, Gateway tenant, NPSP middleware, …).
  • Optional: a minimal proof of concept. Please don’t exfiltrate live customer data.
  • How you’d like to be credited — name, handle, or anonymous.

What to expect from us.

  • Within 1 business day — we’ll reply to confirm we received your report.
  • Within 5 business days — triage, severity assessment, and a target window for the fix.
  • Through to resolution — a status note at least every 7 days while we work the fix.
  • Coordinated disclosure — default 90 days from initial report or fix release, whichever comes first. Credit goes to researchers who follow this policy.

Scope.

In scoperevenuepoint.com and subdomains; the RevenuePoint Platform (portal, reports, and AI connector); Gateway and shipped connectors (Salesforce, SAP, custom REST); npsp-middleware on our supplied images; public APIs at api.revenuepoint.com; authentication, authorisation, tenant isolation, and audit-log integrity; anything that affects customer data confidentiality, integrity, or availability.

Out of scopevolumetric DoS or stress testing; social engineering of staff or customers; physical attacks; spam/phishing without security impact; vulnerabilities in third-party services we depend on (Salesforce, SAP, Stripe, etc.) — please report those to the respective vendor; best-practice findings without demonstrated exploitability (missing headers, version disclosure).

Safe harbor.

We will not pursue legal action against researchers who make a good-faith effort to follow this policy.

That means: report through [email protected]; don’t access more data than necessary to demonstrate the issue; don’t exfiltrate or publicly disclose customer data; don’t degrade service for our customers; give us a reasonable window to ship the fix before publishing.

This policy is intended to be compatible with HackerOne’s safe-harbor language and RFC 9116 (security.txt). If you’re unsure whether something is in scope, ask first.