Medishelf
Trust center

Security & data protection

A pharmacy's stock, sales and customer records are the business. Here is exactly how we protect them — in plain language, without vague promises.

Last updated Maintained by the Medishelf engineering & security team

At a glance

Isolated per pharmacy

Every record is scoped to your tenant at the database layer.

Encrypted everywhere

TLS 1.3 in transit, AES-256 at rest, bcrypt for passwords.

Everything is logged

Price, stock and role changes are written to an audit trail.

Your data, exportable

Full CSV / JSON export anytime — no lock-in.

1.Our approach

Security at Medishelf is a design constraint, not a feature tier. Every plan — including Starter — gets the same isolation, encryption and logging. We follow a simple rule: collect only what the software needs, protect it in layers, and make it easy for you to take it with you.

Honest about certifications

We don't display badges we haven't earned. Medishelf does not currently hold a SOC 2 or ISO 27001 certificate. If your organisation needs a security questionnaire completed, email support@medishelf.co and we'll answer it in detail.

2.Tenant isolation

Each pharmacy is a separate tenant. Products, batches, sales, customers and staff are stored with a tenant identifier, and every database query is scoped to the signed-in user's tenant before it runs. One pharmacy cannot read, list or modify another's data — not through the interface, the API, or search.

Multi-store accounts on Growth and Enterprise share a tenant across their own stores only, with per-store permissions for staff.

3.Encryption

Encryption controls
LayerControl
In transitAll traffic between your browser and Medishelf is encrypted with TLS 1.3. Plain HTTP is redirected to HTTPS.
At restDatabases and backups are encrypted with AES-256.
PasswordsHashed with bcrypt and a per-user salt. We never store or can see your password.
LogsEmails, passwords and tokens are automatically redacted before logs are written.

4.Account & access security

  • Rate-limited logins — repeated failed attempts are throttled to block password guessing.
  • Role-based access control — owners decide who can sell, receive stock, change prices or view profit.
  • Self-service password reset through time-limited, single-use email links.
  • Single sign-on (SSO) is available on Enterprise plans.
  • Suspicious-login monitoring — we notify the account owner of unusual patterns we detect.

5.Application security

  • Every API request is validated against a strict schema before it reaches business logic.
  • Public endpoints are rate-limited to resist abuse and automated attacks.
  • Stock changes run as atomic transactions, so concurrent sales can't corrupt counts.
  • Dependencies are monitored for known vulnerabilities and patched as part of our weekly release cycle.
  • Code changes are peer-reviewed before they ship to production.

6.Audit logging

If it changed, it's logged. Price edits, stock adjustments, voids, role changes and sign-ins are written to an audit log with the user, time and before/after values. Starter includes a basic audit log; Growth and Enterprise include the full log. Owners can review it at any time from the dashboard.

7.Backups & availability

Data is backed up automatically, and backups are encrypted and stored separately from the primary database. We target 99.9% monthly uptime and announce planned maintenance in advance, scheduled outside typical pharmacy trading hours.

After cancellation, your data remains exportable for 30 days, is then deleted from production, and is removed from backups within 90 days. Details are in our Privacy Policy and Support & SLA page.

8.People & vendors

Access to production systems is limited to the engineers who need it to operate the service, and is reviewed regularly. Support staff only view customer data when you ask for help and only to the extent needed to resolve your request.

We use a small number of infrastructure vendors — hosting, email delivery and payment processing. Each receives only the data it needs and is bound by a data processing agreement. We never sell data or share it for advertising.

9.Incident response

If we detect a security incident, we contain it first, then investigate. If your data is affected, we notify the account owner without undue delay — and within 72 hours of confirming a breach where the law requires it — with what happened, what data was involved, and what we're doing about it. A written post-incident summary follows once the investigation is complete.

10.What you can do

  • Give every staff member their own login — never share a cashier account.
  • Use the least-privileged role that lets each person do their job.
  • Remove staff access the day someone leaves.
  • Use a unique, long password and a password manager.
  • Review the audit log weekly for unexpected price or stock changes.

11.Report a vulnerability

Found a security issue? Please email security@medishelf.co with steps to reproduce. We acknowledge reports within 2 business days, keep you updated while we fix it, and credit researchers who want recognition.

Safe-harbour guidelines

Act in good faith: don't access, modify or delete other customers' data, don't degrade the service, and give us reasonable time to fix the issue before public disclosure. If you follow these rules, we won't pursue legal action over your research.

Questions about this page?

A real person replies within one business day — no bots, no ticket maze.