Privacy Policy

Last updated April 12, 2026

Pennypoke is a Telegram bot that parses expense messages and writes them to your Google Sheet. This page explains exactly what data touches our server, what we keep, and what we never see.

The short version. Your expenses live in your Sheet, not on our server. Our server is a stateless Cloudflare Worker with no disk, so it literally can't store your receipts or messages. What we keep: a hashed account ID, a monthly usage counter, and your encrypted Google OAuth token. That's it.

01 What we process

When you send a text message to the bot or upload a receipt photo, our service:

  1. Parses the text (or sends the image to Anthropic's Claude Vision API) to extract amount, merchant, date, category, items.
  2. Sends the extracted data to your Google Sheet via the Google Sheets API.
  3. Frees the memory holding the message or image once the request completes.

We do not store your messages, receipts, or extracted data. The server is a Cloudflare Worker, a stateless compute environment with no disk, no filesystem, no persistent storage. Your input exists in memory for the few seconds it takes to process, then the process ends. This is architecturally enforced, not just a policy promise.

02 What we store

We store the minimum needed to operate the service:

That's it. No expense data, no receipt images, no financial information.

03 Sub-processors

Your data passes through these services during processing:

ServicePurposeWhat they receivePolicy
Anthropic (Claude Vision) Receipt photo OCR Receipt image (transient) Anthropic policy, API data not used for training
Google (Sheets API) Writing rows to your Sheet Extracted data Google policy
Telegram Bot messaging Your messages to the bot Telegram policy
Stripe Payments Card details (we never see these) Stripe policy
Cloudflare Hosting (Workers, Pages, D1, KV) Request metadata, hashed account ID Cloudflare policy

04 What we do not do

05 Your rights

Under GDPR, CCPA, and similar laws you have the right to:

To exercise any right, email povkonop@gmail.com.

05a Data controller

The data controller for Pennypoke is Povilas Konopackas, a sole trader based in Lithuania, EU. Contact: povkonop@gmail.com. This is also the address for any GDPR request.

06 Data retention

07 Security

All data in transit is encrypted via TLS. Data at rest in D1 and KV is encrypted by Cloudflare. OAuth tokens are additionally encrypted before storage. We follow OWASP guidelines for the web application.

08 Children

This service is not directed at children under 16. We do not knowingly process data from children.

09 Changes

If we change this policy in a way that affects your rights, we will notify you via the email on your Google account or a banner on the site, at least 30 days before the change takes effect.

10 Contact

For privacy questions, email povkonop@gmail.com.