Security & data

Last updated: 13 June 2026

Security and tenancy isolation are part of OraVoice's data model, not an afterthought. This page summarizes how we protect customer data.

Data residency

Customer and call data is hosted in the European Union (eu-central-1). Payments run through Stripe; voice processing through ElevenLabs.

Tenant isolation

Every tenant table enforces PostgreSQL row-level security (RLS), and every server route authorizes against the authenticated session - we never trust a client-supplied organization id. Roles (owner, admin, builder, operator, viewer) scope what each member can do, and privileged actions are written to an audit log.

Secrets & encryption

Per-organization SIP and provider credentials are encrypted at rest with AES-256-GCM. Provider API keys and webhook secrets live in server-side configuration and are never exposed to the browser or to tenants.

Webhooks

Inbound call webhooks are HMAC-verified against the raw body and processed idempotently, so retries never double-count usage or duplicate records.

Monitoring

We monitor errors and platform health continuously and rate-limit public endpoints to protect against abuse.

Reporting a vulnerability

Found a security issue? Email security@oravoice.me and we will respond promptly.