Security
Last updated 5 October 2026
Senport handles complaints, cases and customer conversations for banks, fintechs, insurers, telecoms and public bodies. Security is designed into the platform rather than added on. This page describes the measures in place today; the binding commitments are in our Data Processing Addendum.
Separation of every organization’s data
Every organization’s records are separated by row-level security enforced inside the PostgreSQL database, not only in application code. The application connects with a database role that cannot bypass these rules, and refuses to start if it could. Automated tests check that every table holding an organization’s data is covered. Organizations that need physical separation can have a dedicated installation, or run Senport on their own servers (see Deployment options below).
Deployment options
- Senport cloud: hosted and run by us on Amazon Web Services in Frankfurt, Germany. The measures on this page describe this service.
- Dedicated installation: a separate Senport installation for your organization alone, with its own database and storage, in a location agreed in your Order Form.
- On your own servers (on-premise): you install and run Senport in your own data centre or private cloud. Your data, including uploaded files, stays on your infrastructure, under your own security controls, and does not pass through Senverse.
An on-premise installation makes no connection to Senverse unless you turn it on. Checking for new releases, fetching our licence revocation list (which can instead be loaded by hand) and a daily licence report are all switched off by default. If you turn the licence report on, it sends only the licence, the software version, the number of seats in use and the database version: nothing about your organizations, people or records.
Senport can therefore run on a network with no internet access, with releases delivered as an offline bundle. AI features can use a model running inside your own network, use AI providers you choose under your own accounts, or be switched off. Senverse staff cannot see the data in an on-premise installation, and access it only if you give them access, for example during a support session you arrange. Hosting, backups, availability and physical security of an on-premise installation are your responsibility.
Encryption
- In transit: all connections to Senport use HTTPS (TLS), with HTTP Strict Transport Security.
- At rest: the production database runs on encrypted storage volumes, and backups are stored in encrypted cloud storage using AWS Key Management Service.
- Sensitive fields: national identifiers (such as Ghana Card and Bank Verification Numbers), tax identifiers, integration and payment credentials, single sign-on secrets, authenticator secrets and whistleblowing reports are additionally encrypted by the application with AES-256-GCM, using keys derived separately for each organization and field.
- Credentials: passwords are hashed with bcrypt; API keys, session tokens and recovery codes are stored only as hashes and cannot be recovered from the database. Card numbers are masked as they arrive.
Sign-in and access control
- Multi-factor authentication with authenticator apps, passkeys or hardware security keys, plus one-time recovery codes.
- Single sign-on with SAML, OpenID Connect, Google Workspace and Microsoft on the Business and Enterprise plans.
- Organization security policies: require multi-factor authentication or a minimum assurance level, restrict sign-in to IP ranges, set idle timeouts and session limits, and set password rules.
- Role-based permissions and Workspace scoping, so people see only the work they are entitled to.
- Email verification before sign-in, rate-limited authentication endpoints, and short-lived access tokens with rotating, HTTP-only refresh sessions.
Senverse staff access
Senverse staff do not read your records in the ordinary course. Our platform console shows our team operational information such as counts and configuration status, not the content of your tickets or who raised them. When support needs to look at your records, your administrator approves a read-only visit that is limited to the areas you choose, lasts at most two hours and is recorded in your audit log. Whistleblowing reports and sealed records are never accessible to Senverse. All staff access requires multi-factor authentication, roles follow least privilege and are reviewed periodically, and any emergency access is audited and reviewed.
Audit trail and evidence
Every significant action, including status changes, assignments, permission changes and support visits, is written to an append-only audit trail protected by a cryptographic hash chain, so any alteration can be detected. Administrators can review and export it. Evidence records support sealing, chain of custody and approval-gated disposal.
Application security
- Uploaded files are scanned for malware; infected files are rejected, and files can be downloaded only after a clean scan.
- A strict Content Security Policy and standard security headers in the browser.
- Strict validation of all input, protection against server-side request forgery, and signature verification on inbound messaging webhooks.
- Webhooks Senport sends are signed with HMAC-SHA256 and protected against replay.
- Error reports are scrubbed of personal data before they leave the platform.
- Sign-ups from temporary or throwaway email services, and from domains that cannot receive email, are refused, and a sign-up can be required to pass a Cloudflare Turnstile check that tells people from automated scripts.
- Automated scanning of code and dependencies for known vulnerabilities and leaked secrets.
AI with safeguards
AI features are controlled by each organization. By default, personal data is removed before text is sent to an external AI provider; organizations can block external AI altogether or use a local model. AI suggestions are reviewed by people before anything reaches a customer, and Senverse does not use your data to train AI models.
Hosting, backups and availability
The Senport cloud service runs on Amazon Web Services in Frankfurt, Germany. Database changes are archived continuously and a full base backup is taken daily, both copied off the server to encrypted storage, and our database restore procedure has been tested. We commit to 99.9% monthly availability on paid plans, with service credits if we fall short, and publish incidents and planned maintenance on our status page.
Incident response
We monitor the platform and respond to incidents with a documented process. If a personal data breach affects your organization, we will notify you without undue delay, and where feasible within 72 hours, with the information you need to meet your own obligations.
Compliance
Senport is designed to help regulated organizations meet their obligations, including the Data Protection Act, 2012 (Act 843) of Ghana and complaint-handling rules such as those of the Bank of Ghana. Senverse does not currently hold third-party security certifications such as ISO 27001 or SOC 2. We are happy to answer security questionnaires and to share more detail under a confidentiality agreement.
Responsible disclosure
If you believe you have found a security vulnerability in Senport, please email security@senverse.io with the details and steps to reproduce it. Please give us reasonable time to investigate and fix it before disclosing it publicly, do not access or change other people’s data, and do not run tests that could degrade the service. We will acknowledge your report, keep you informed, and will not take legal action against good-faith research that follows these guidelines.