Security & Privacy

Enterprise-grade security designed for Dutch accounting professionals. Your data is protected with multiple layers of defense.

Last updated: December 29, 2025

Security at a Glance

GDPR Compliant

Full audit trail, right to deletion, and data portability

AES-256 Encryption

Military-grade encryption at rest and in transit

Self-Service Export

Complete data export in CSV format (<60 seconds)

Configurable Retention

User-controlled data lifecycle management

Reporting Security Vulnerabilities

We appreciate security researchers and users who help us maintain the security of our platform. If you discover a security vulnerability, please report it responsibly.

How to Report

Email: support@receiptguard.io

Please include:

  • Type of vulnerability
  • Steps to reproduce the issue
  • Potential impact
  • Any suggested fixes (optional)

Responsible Disclosure

We appreciate researchers who:

  • • Report privately before public disclosure
  • • Give reasonable time to fix issues
  • • Do not exploit vulnerabilities
  • • Follow coordinated disclosure

What to Expect

When you report:

  • • Acknowledgment within 24 hours
  • • Investigation and validation
  • • Regular progress updates
  • • Credit for discovery (if desired)

Data Security Architecture

Multi-layered security protecting your sensitive financial data with defense-in-depth strategy.

Multi-Tenant Isolation

Every organization's data is completely isolated using application-level filtering with database Row-Level Security policies as defense-in-depth. Each query is automatically filtered by your organization ID, making cross-organization access impossible.

Organization filtering enforced on every database query

Defense-in-Depth Strategy

We implement multiple security layers so that even if one layer is compromised, others protect your data:

1
Edge Protection
Vercel Edge Functions with rate limiting
2
Authentication
Clerk with MFA support
3
API Gateway
Request validation and rate limiting
4
Application Layer
Input sanitization and business logic validation
5
Database Layer
Organization-level query filtering
6
Storage Security
Private buckets with time-limited signed URLs
7
Audit Trail
Comprehensive logging of all actions

GDPR Compliance

Full compliance with European data protection regulations, designed for Dutch accounting professionals.

Your Rights

  • Right to Access: View all your data via dashboard
  • Right to Deletion: Complete data removal on request
  • Right to Portability: Self-service export in CSV format (<60 seconds)
  • Breach Notification: Within 72 hours if applicable

Audit Trail

Every action is logged with comprehensive details:

  • • Who accessed the data (user ID)
  • • What action was performed
  • • When it happened (timestamp)
  • • Where from (IP address, user agent)
  • • Success or failure status

Logged actions include: view, upload, update, delete, bulk delete, rescan, export_data, update_retention, auto_delete, and access denied events.

Access Control & Authentication

Enterprise-grade authentication with support for multi-factor authentication and team collaboration.

Multi-User Organizations

ReceiptGuard supports team collaboration with proper access control. Organization owners have full control, while members have limited access to protect your data.

Owners can:
  • • Delete any receipt
  • • Manage billing
  • • Invite/remove members
  • • Export data
  • • Configure retention
Members can:
  • • View all receipts
  • • Upload receipts
  • • Edit/delete own receipts

Authentication Provider: Clerk

We use Clerk for enterprise-grade authentication with:

  • SOC 2 Type II certified
  • Multi-Factor Authentication
  • Session management
  • OAuth support

Storage Security

Your receipts are stored in private, encrypted buckets with time-limited access controls.

Private Bucket Architecture

Receipts are stored in Supabase Storage with strict access controls. Each organization's files are isolated in separate folders, preventing cross-organization access.

receipts-private/
├── org_abc123/ ← Your organization
├── receipt_1.pdf
└── receipt_2.jpg
└── org_xyz789/ ← Different organization

Signed URLs

Files are accessed via time-limited signed URLs:

  • • Expire after 1 hour
  • • Generated on-demand
  • • Unique per user session
  • • Cannot be shared or reused

File Upload Security

Multiple validation layers:

  • • Magic byte validation
  • • File size limits (10MB)
  • • Allowed types only (PDF, PNG, JPG)
  • • Malware scanning

Data Management & Retention

Take control of your data with self-service export and configurable retention policies.

Self-Service Data Export

Organization owners can export all data at any time via Settings → Data Management. Export completes in under 60 seconds and includes complete CSV files with all your data.

What's Included in Export:

  • receipts.csv - All receipt data including fraud detection results
  • clients.csv - Client list with all information
  • audit_logs.csv - Complete activity history
  • organization.csv - Organization settings and subscription info
  • README.txt - Export metadata and usage instructions
GDPR Compliant:
  • • Article 20 (data portability)
  • • Machine-readable format (CSV)
  • • Complete data set
  • • Reasonable timeframe (<60s)
Security Features:
  • • Owner-only access
  • • All exports logged
  • • No sensitive secrets included
  • • Automatic file download

Configurable Data Retention

Organizations can configure how long receipts are retained before automatic deletion. This supports GDPR data minimization principles while respecting Dutch 7-year fiscal retention requirements.

⚠️ Important: Dutch Law Requires 7-Year Retention

Business receipts must be kept for at least 7 years under Dutch fiscal law. Users are responsible for compliance. Set retention to at least 7 years or "Never delete" for maximum compliance.

Retention Options:
  • Never Delete (default) - Receipts stored indefinitely
  • 30 Days - Receipts deleted after 1 month
  • 90 Days - Receipts deleted after 3 months
  • 365 Days - Receipts deleted after 1 year
Automatic Deletion Process:
  • • Daily cron job runs at midnight UTC
  • • Deletes receipts older than retention period
  • • Removes both database records and storage files
  • • All deletions logged in audit trail
  • • Deletion is permanent (cannot be undone)
Owner Controls:
  • • Only organization owners can change retention
  • • First-time setup guides new organizations
  • • Settings can be changed anytime
  • • Warning shown when enabling aggressive retention

Deletion Security

The automatic deletion system is protected by multiple security layers:

  • 1
    Cron Secret Authentication
    Endpoint protected by CRON_SECRET environment variable
  • 2
    Vercel-Only Access
    Only Vercel's cron system can trigger deletion
  • 3
    Organization Isolation
    Each organization's data processed separately
  • 4
    Comprehensive Logging
    All deletion attempts logged (successful and failed)
  • 5
    Audit Trail Preserved
    Deletion events logged even after receipts removed

Data Encryption

All data is encrypted both at rest and in transit using industry-standard protocols.

Encryption at Rest

  • Database:
    AES-256 (Supabase PostgreSQL)
  • File Storage:
    AES-256 (Supabase Storage)
  • Backups:
    AES-256 encrypted snapshots

Encryption in Transit

All communication uses TLS 1.3:

  • • API requests (HTTPS)
  • • Database connections (SSL)
  • • Storage uploads (HTTPS)
  • • External API calls (HTTPS)

Rate Limiting & DDoS Protection

Protection against abuse and denial-of-service attacks with organization-level rate limits.

Organization-Level Rate Limits

OperationLimitWindowPurpose
Upload100 requests1 hourPrevent spam uploads
Rescan10 requests1 hourPrevent AI abuse
Batch Process5 requests1 hourPrevent resource exhaustion

Every response includes rate limit headers showing your remaining quota and reset time.

Third-Party Security

We only use SOC 2 compliant service providers with signed Data Processing Agreements.

Clerk
SOC 2 Type II

Authentication & session management

Supabase
SOC 2 Type II

Database & file storage

Vercel
SOC 2 Type II

Application hosting & CDN

Stripe
PCI-DSS Level 1

Payment processing (we never see card numbers)

Compliance & Certifications

Current Compliance

  • GDPR - General Data Protection Regulation
  • Dutch Privacy Law - AVG compliance
  • PCI-DSS Level 1 - Via Stripe for payments
  • 7-Year Retention - Dutch fiscal requirements

Regular Security Audits

  • • Penetration testing - Quarterly
  • • Vulnerability scanning - Continuous
  • • Code security review - Every release
  • • Dependency audits - Weekly

Security Contact

ReceiptGuard logoReceiptGuard
    Security - Enterprise-Grade Protection | ReceiptGuard | ReceiptGuard