Reservly Sub-Processor List
Last updated: October 9, 2026
What is a sub-processor?
A sub-processor is a third-party service that Reservly uses to operate the platform. Where those services store, transmit, or otherwise process personal data on Reservly's behalf, the GDPR and similar laws classify them as sub-processors. The businesses that use Reservly are controllers of their customers' personal data; Reservly is a processor acting on each business's behalf; the services listed below are sub-processors engaged by Reservly.
This page lists every sub-processor we currently use, plus services we expect to activate in the near term. We keep the list current because the businesses we serve often need it to satisfy their own compliance programs.
Current sub-processors
Core platform infrastructure
| Sub-processor | Purpose | Data categories processed | Region | Provider privacy page |
|---|---|---|---|---|
| Supabase (Supabase, Inc.) | Primary application database (Postgres) and authentication | Account data, booking data, usage logs, customer-provided booking form fields, support-ticket messages and the contact details on them, encrypted OAuth tokens (Supabase Vault) | European Union — eu-central-1 (Frankfurt, Germany) | supabase.com/privacy |
| Vercel (Vercel, Inc.) | Application hosting — serverless functions, edge network, static asset delivery | Server-side request and rendering data, access logs | United States — iad1 (Northern Virginia) | vercel.com/legal/privacy-policy |
| Cloudflare R2 (Cloudflare, Inc.) | Object storage for the files a business uploads — images and PDF documents — served through our custom domain images.reservly.io | Uploaded images (logos, cover images, service, event, rental, package and staff photos, gallery photos, floor plans) and uploaded PDF documents (for example waivers and pre-arrival information, which we also attach to booking confirmation emails), plus file metadata; screenshots a business attaches to a support request (which may show that business's own booking data) | European Union (EU) jurisdiction — reservly-images-eu bucket | cloudflare.com/privacypolicy |
| Upstash (Upstash, Inc.) | Rate-limiting state (fixed-window counters) and short-term counters | API keys (hashed), per-key request counters, IP-address-derived counters | European Union — Frankfurt, Germany | upstash.com/trust/privacy.pdf |
‡ For UK personal data transferred to US-based sub-processors (Vercel): the applicable transfer mechanism is the ICO-approved IDTA or UK Addendum to EU SCCs. Where a US-based sub-processor is certified under the UK-US Data Bridge, Reservly may rely on that certification in lieu of the IDTA for that specific transfer. Certification status will be verified per vendor before UK customer onboarding.
Communication and monitoring
| Sub-processor | Purpose | Data categories processed | Region | Provider privacy page |
|---|---|---|---|---|
| Resend (Resend, Inc.) | Outbound transactional email (booking confirmations, reminders, account email) and Reservly support correspondence sent from help.reservly.io | Recipient email address, email subject and body, delivery events | United States | resend.com/legal/privacy-policy |
| Sentry (Functional Software, Inc. / Sentry) | Application error and performance monitoring | Error stack traces, request metadata, breadcrumbs (PII scrubbed before ingest) | European Union — ingest.de.sentry.io (Frankfurt) | sentry.io/privacy |
| Proton (Proton AG) | Mailbox for support@reservly.io — the address we publish for support, privacy and data-protection correspondence | Sender email address, message subject and body, and anything the sender chooses to put in it | Switzerland (covered by the European Commission's adequacy decision for Switzerland) | proton.me/legal/privacy |
| Cloudflare Email Routing / Workers (Cloudflare, Inc.) | Receives support email sent to help.reservly.io and passes the parsed message — sender address, subject, plain-text message body and mail-authentication headers — to Reservly's support queue. Attachments are discarded on arrival and never stored. | Sender email address, message subject and body, mail-authentication headers | Global (Cloudflare-operated infrastructure) | cloudflare.com/privacypolicy |
Push notification delivery
| Sub-processor | Purpose | Data categories processed | Region | Provider privacy page |
|---|---|---|---|---|
| Google Firebase Cloud Messaging (Google LLC) | Delivers browser/OS push notifications to Chrome and other Chromium-based browsers, and to Android devices | Push-subscription endpoint URL, encrypted subscription keys (p256dh, auth), encrypted notification payload (booking type, customer name, service, time) | Global (Google-operated infrastructure) | policies.google.com/privacy |
| Mozilla Push Service (Mozilla Corporation) | Delivers browser push notifications to Firefox | Push-subscription endpoint URL, encrypted subscription keys, encrypted notification payload | Global (Mozilla-operated infrastructure) | mozilla.org/privacy |
| Apple Push Notification service (Apple Inc.) | Delivers browser/OS push notifications to Safari and iOS/macOS devices | Push-subscription endpoint URL, encrypted subscription keys, encrypted notification payload | Global (Apple-operated infrastructure) | apple.com/legal/privacy |
| Windows Notification Service (Microsoft Corporation) | Delivers browser push notifications to Microsoft Edge on Windows | Push-subscription endpoint URL, encrypted subscription keys, encrypted notification payload | Global (Microsoft-operated infrastructure) | privacy.microsoft.com |
Reservly does not choose which of these four services is used for a given device — the recipient's browser makes that determination when the device subscribes to push notifications. This feature is used to notify business staff/owners of new bookings on their own devices; it is not used to send push notifications to end-user customers.
SMS delivery (business-connected "bring your own" Twilio)
| Sub-processor | Purpose | Data categories processed | Region | Provider privacy page |
|---|---|---|---|---|
| Twilio (Twilio Inc.) | SMS delivery via business-connected "bring your own" Twilio accounts — the business supplies its own Twilio Account SID and Auth Token; Reservly routes SMS through that business's account | Twilio Account SID and Auth Token (encrypted at rest in Supabase Vault), sending phone number, SMS send-event log (timestamp, delivery status, template type, masked recipient number + one-way hash), STOP/START opt-out records | Global (business-selected Twilio numbering region) | twilio.com/legal/privacy |
Billing (Reservly's own subscriptions)
| Sub-processor | Purpose | Data categories processed | Region | Provider privacy page |
|---|---|---|---|---|
| Paddle (Paddle.com Market Ltd.) | Merchant of record for Reservly subscriptions — collects payment, handles global sales tax (VAT/GST), issues invoices and receipts, processes subscription cancellations and refunds. Its checkout opens in Paddle's own frame over the dashboard's Subscription page, and Paddle Retain (Paddle's payment-recovery tool) loads with it. Note: Paddle is incorporated in the United Kingdom; no international transfer mechanism is required for UK personal data transferred to Paddle. | Business billing contact, payment method (handled by Paddle; Reservly does not see card numbers), transaction amounts, tax determinations | Global, with EU primary (Paddle is UK-incorporated) | paddle.com/legal/privacy |
Customer-to-business payments (Reservly is software-only)
Reservly is software-only. Reservly does not hold customer funds, does not maintain a master merchant account, and is not a Payment Facilitator, Payment Services Provider, Money Transmitter, or Merchant of Record under any regulatory definition (including PSD2, the UK Payment Services Regulations, FinCEN, US state money-transmitter laws, or the Mastercard / Visa Payment Facilitator registries). When a business using Reservly accepts payments from its customers through Stripe, Stripe processes payment data on the business's instruction — not Reservly's instruction. This means Stripe is not Reservly's sub-processor in this flow; it is an independent data processor engaged directly by the business through the business's own Stripe Connect Standard account. The business, as the merchant of record, has its own contractual relationship with Stripe and is responsible for Stripe's data-processing practices in the customer-facing payment flow.
Reservly lists this provider here for transparency, because the OAuth connect flow passes through Reservly's infrastructure and Reservly stores minimal payment-adjacent reference data (transaction IDs, as described in the Privacy Policy). The customer personal data processed during payment itself — card details, billing address, bank account information — is governed solely by the business's agreement with Stripe, not by Reservly's DPA.
The following table describes this relationship for transparency. Stripe is not Reservly's sub-processor; it is listed because Reservly stores OAuth tokens that link a business's account to Stripe.
| Sub-processor | Purpose | Data categories processed | Region | Provider privacy page |
|---|---|---|---|---|
| Stripe (Stripe, Inc.) | Customer-to-business payment processing via business's own Stripe Connect Standard account — Stripe processes on the business's instruction, not Reservly's | OAuth tokens linking a business to its Stripe account (encrypted at rest in Supabase Vault); payment intent reference IDs. Card details and billing data are processed solely by Stripe under the business's agreement with Stripe. | Global | stripe.com/privacy |
Planned sub-processors
These services are contracted or under evaluation and will appear in the "Current" tables above on the date they begin processing live data. We will announce each activation through the notice process described below at least 30 days in advance.
| Sub-processor | Purpose | Planned activation | Region |
|---|---|---|---|
| Mistral AI (Mistral AI SARL) | AI-powered translation of service names, descriptions and policies via the AI translation button for business-authored content. Data processed in the EU; no third-country transfer; paid API excludes data from model training; 30-day data retention limit. DPA available at legal.mistral.ai. | On launch of the AI translation button for business-authored content. Not started — no integration code exists today. | France / European Union — eu-central-1 (Frankfurt) |
| Anthropic (Anthropic PBC) | The model behind the in-dashboard support assistant ("Ask" in the Help panel; the model is claude-sonnet-5, reached through the gateway in the row below). The assistant answers only from Reservly's own help documentation and the page the member is on; it is started by a signed-in member of the business, never proactive, and it cannot act on the account — it has no tools. What reaches Anthropic per question: the member's question, the recent turns of that same conversation, the handful of help-documentation passages Reservly retrieved for it, and the path of the dashboard page the member had open — not the business's booking database, its customer records, its payment data or any other member's conversations. Every request is sent with zero-data-retention and no-training required; the gateway refuses the request if no endpoint can honour them. Before activation we will have accepted Anthropic's commercial terms and data-processing agreement on the API account. Reservly keeps each conversation for 90 days from its last message (in Supabase, alongside the account's other data) and then deletes it; a conversation the member turns into a support ticket has its transcript copied into that ticket, where it follows the ticket's retention. Usage is capped per member, per business and per month. | On launch of the in-dashboard support assistant. Not started — the feature ships behind a flag and no request reaches this service until it is switched on, and the switch is preceded by the 30-day notice described below. | United States |
| Vercel AI Gateway (Vercel, Inc.) | Routes the support assistant's requests to the model provider above, and carries the zero-data-retention and no-training requirements on each of them (a request that cannot be honoured on those terms is refused, not downgraded). Processes the same content in transit and adds usage and error telemetry (token counts, latency, the model id — not the conversation text once the request completes). Vercel already appears under "Core platform infrastructure" as Reservly's application host; this is a separate product and a separate data flow, listed on its own so a reader is not asked to infer it from the hosting row. | On launch of the in-dashboard support assistant, at the same time as the row above. | United States |
| Telnyx (Telnyx LLC) | SMS delivery for bookings in North America (USA, Canada, Mexico) | Not scheduled. SMS is live today through a business's own Twilio account; Telnyx would only be activated if Reservly starts sending SMS itself, and we would give 30 days' notice first. | United States |
| Infobip (Infobip Ltd.) | SMS delivery for bookings in the European Union, United Kingdom, and adjacent markets | Not scheduled. SMS is live today through a business's own Twilio account; Infobip would only be activated if Reservly starts sending SMS itself, and we would give 30 days' notice first. | European Union |
How we manage sub-processor changes
We maintain a Data Processing Agreement or equivalent contract with every sub-processor that processes personal data on our behalf, and we rely on Standard Contractual Clauses or an equivalent transfer mechanism for international transfers where required.
We review each sub-processor's data-processing practices, DPA status, and region at least annually. The Last updated date at the top of this page reflects the most recent review cycle. Individual sub-processor rows do not show per-row review dates; all rows were verified as of the most recent Last updated date, except rows added or corrected after that date, which carry the date of the change in the changelog below.
When we propose to add a new sub-processor or materially change an existing one, we will post the change on this page and send notice to the primary contact email on every active subscription at least 30 days before the change takes effect, unless a shorter period is required by law or by a security-critical incident. During that window, a business may object to the change by emailing support@reservly.io. If we cannot accommodate the objection, the business may terminate its subscription and receive a pro-rated refund of any prepaid fees for the remaining service period.
Subscribe to change notifications
When we add or change a sub-processor, we post it on this page and in the changelog below, and we email the primary contact on every active subscription. Sending that email is a manual step in our release process, not an automated one.
Other parties (prospective customers, auditors, procurement teams) may subscribe to change notifications by emailing support@reservly.io with the subject line "Sub-processor list subscribe" and we will add the address to the notice list. You may unsubscribe at any time with the subject line "Sub-processor list unsubscribe."
We plan to add an RSS feed for this page in a future update; when available, it will be linked here.
Changelog
This section records every material change to the list above, in reverse chronological order.
| Date | Change |
|---|---|
| 2026-10-09 | Moved Cloudflare Email Routing / Workers (Cloudflare, Inc.) from "Planned" to "Communication and monitoring": mail sent to help.reservly.io has been received this way since 2026-10-08. The row had been listed as Planned since 2026-09-10, 28 days earlier, and no email notice went out, because Reservly had no paying subscriber before launch to send it to; a business that objects may do so as described above. The Paddle row now says that its checkout opens in your browser, in Paddle's own frame over the dashboard's Subscription page, and that Paddle Retain (Paddle's payment-recovery tool) loads with it — both since the self-serve checkout shipped on 2026-10-08. |
| 2026-09-26 | Updated the Anthropic and Vercel AI Gateway "Planned" rows to describe the assistant as built: the model (claude-sonnet-5), exactly what each question sends (the question, the recent turns of that conversation, the retrieved help-documentation passages, the current page path — never the booking database or customer records), zero-data-retention and no-training required on every request, the 90-day conversation retention, the ticket hand-over, the usage caps, and that a signed-in member (not only the owner) may start it. Both rows stay "Planned": the feature ships behind a flag, and activation follows the 30-day notice. |
| 2026-09-10 | Added Anthropic (Anthropic PBC) and Vercel AI Gateway (Vercel, Inc.) to "Planned" — the model provider behind the in-dashboard support assistant, and the gateway that routes to it. Listed before the feature ships on purpose: this page promises 30 days' notice and an objection right before a new sub-processor begins processing, and that notice period is only free to give while it costs nobody anything. Neither service receives any request until the assistant is switched on. |
| 2026-09-10 | Recorded Reservly's support-ticket system: ticket messages and the contact details on them are stored in Supabase, replies are sent through Resend from help.reservly.io, and screenshots attached to a support request are stored in Cloudflare R2. Added Proton (Proton AG) to "Communication and monitoring" — Proton hosts the support@reservly.io mailbox this page publishes for support, privacy and data-protection correspondence. Added Windows Notification Service (Microsoft Corporation) to "Push notification delivery" and corrected the Firebase row, which had wrongly attributed Microsoft Edge deliveries to Google. Corrected the Cloudflare R2 row, which described the bucket as images-only although it has held business-uploaded PDF documents for months. Added Cloudflare Email Routing / Workers to "Planned" — inbound support mail on help.reservly.io begins processing on a DNS change rather than a deploy. Replaced the internal "R4.2" plan reference on the Mistral AI row and the "On SMS feature launch" trigger on the Telnyx and Infobip rows — neither phrase described anything real any more. Corrected "Subscribe to change notifications": change notices are sent as a manual step in our release process, not automatically. |
| 2026-07-13 | Added a "Push notification delivery" section listing Google Firebase Cloud Messaging (Google LLC), Mozilla Push Service (Mozilla Corporation) and Apple Push Notification service (Apple Inc.). Web push had shipped without these recipients being disclosed; which one receives a notification is chosen by the staff member's own browser, not by Reservly. Microsoft's Windows Notification Service was on the same delivery allow-list but was not disclosed until 2026-09-10 — see that entry. |
| 2026-07-12 | Moved Twilio from "Planned" to "Current" sub-processors (new "SMS delivery" section) — BYO Twilio SMS has been live since PRs #118/#120/#124, roughly seven weeks before this page's prior "Last updated" date. Telnyx and Infobip remain Planned; no code integration exists for either yet. Also corrected the Upstash region to European Union — Frankfurt (provisioned 2026-07-11), removed "object storage" from Supabase's listed purpose (100% of object storage runs through Cloudflare R2), and removed the fabricated "last four digits of payment methods" storage claim from the Stripe row and surrounding prose (Reservly never sees or stores card data). |
| 2026-07-05 | Removed PayPal Commerce Platform from the customer-to-business payments section. Reservly launches Stripe-only; PayPal is no longer an available payment provider. Stripe's row and its independent-processor posture are unchanged. |
| 2026-06-20 | Corrected the Supabase region to eu-central-1 (Frankfurt, Germany) following the 2026-05-02 EU migration (the former US-region project was permanently deleted). Stated Cloudflare R2 image-storage jurisdiction as the European Union (EU). Removed the "Integrations activated at the business's option" section (Google / Microsoft / Zoom / Dropbox calendar, meeting, and backup integrations) — these were withdrawn from the product; calendar is now subscribable ICS feeds plus .ics email attachments, with no third-party calendar, meeting, or backup sub-processor. Reconciled the backup-resilience claim to match production: daily encrypted backups are retained for 7 days (Supabase Pro). |
| 2026-04-26 | Reclassified Stripe and PayPal from "sub-processors" to "independent processors engaged by the business" in the customer-to-business payment section. Expanded Google and Microsoft integration rows with explicit data-flow direction (bidirectional calendar, write-only backup/meetings). Added UK Addendum/IDTA and UK-US Data Bridge footnote for UK transfers. Added last-reviewed disclosure to sub-processor management section. Added Mistral AI SARL to planned sub-processors (R4.2 AI translation feature). Confirmed DeepSeek is not and will not be integrated — excluded from this list per A6 compliance review (GDPR unlawful transfer risk, active Italian/German DPA actions). |
| 2026-04-26 | Open item — RA-47: Upstash DPA acceptance pending Steve's verification. Upstash processes IP-address-derived rate-limiting counters, which constitute personal data under GDPR Recital 30. Steve must log in at upstash.com/trust and confirm the Data Processing Agreement has been signed or accepted for the Reservly account. This entry will be updated once confirmed — see RA-47. |
| 2026-04-16 | Initial publication. |
Contact
Questions about any sub-processor, a specific transfer, or our sub-processor program generally: support@reservly.io.
Formal data-protection inquiries (data subject requests, regulator correspondence): support@reservly.io with subject line "Privacy Officer" — routed to Reservly's designated Privacy Officer role.