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.