{
  "$schema": "https://campone.ch/schemas/sub-processors-v1.json",
  "version": 1,
  "publisher": {
    "name": "CampOne",
    "domain": "campone.ch",
    "contact": "privacy@campone.ch"
  },
  "lastUpdated": "2026-04-28",
  "humanReadable": "https://docs.campone.ch/de/security/sub-processors/",
  "subProcessors": [
    {
      "name": "Supabase",
      "role": "PostgreSQL hosting + object storage (S3)",
      "dataCategories": ["application_data", "booking_data", "media"],
      "location": "EU/EEA (AWS Frankfurt, eu-west-1, Ireland)",
      "country": "IE",
      "contractualBasis": ["EU_SCCs", "DPA"],
      "status": "dpa_signing_in_progress"
    },
    {
      "name": "Railway",
      "role": "Backend hosting (Django, workers)",
      "dataCategories": ["application_logs", "transient_request_data"],
      "location": "EU",
      "country": "DE",
      "contractualBasis": ["EU_SCCs", "DPA"],
      "status": "dpa_signing_in_progress"
    },
    {
      "name": "Vercel",
      "role": "Frontend hosting (CDN, edge)",
      "dataCategories": ["request_routing", "cached_content"],
      "location": "Global, primary cache EU",
      "country": "US",
      "contractualBasis": ["EU_SCCs", "DPA"],
      "status": "dpa_signing_in_progress"
    },
    {
      "name": "Stripe",
      "role": "Payment processing",
      "dataCategories": ["payment_intent_references"],
      "note": "Card data is stored by Stripe, never by CampOne.",
      "location": "Switzerland / Ireland",
      "country": "CH",
      "contractualBasis": ["Stripe_DPA"],
      "status": "active"
    },
    {
      "name": "Booking.com",
      "role": "OTA distribution channel",
      "dataCategories": ["ota_booking_data", "ota_guest_data"],
      "location": "Netherlands",
      "country": "NL",
      "contractualBasis": ["OTA_contract"],
      "status": "active_when_integration_enabled"
    },
    {
      "name": "Per-tenant SMTP",
      "role": "Email delivery",
      "dataCategories": ["recipient_address", "booking_confirmation_content"],
      "note": "Each tenant chooses their own SMTP provider. The contract is directly between the tenant and the provider.",
      "location": "Depends on provider",
      "country": "varies",
      "contractualBasis": ["tenant_owned_contract"],
      "status": "tenant_managed"
    },
    {
      "name": "Groq",
      "role": "Optional AI assistant — LLM inference for customer-support chat",
      "dataCategories": ["chat_messages"],
      "location": "USA",
      "country": "US",
      "contractualBasis": ["EU_SCCs_pending"],
      "status": "opt_in_per_tenant"
    },
    {
      "name": "Anthropic",
      "role": "Optional AI assistant — LLM inference for customer-support chat (alternative to Groq)",
      "dataCategories": ["chat_messages"],
      "location": "USA",
      "country": "US",
      "contractualBasis": ["EU_SCCs_pending"],
      "status": "opt_in_per_tenant"
    }
  ],
  "changeLog": [
    {
      "date": "2026-04-28",
      "change": "Initial publication."
    }
  ]
}
