Privacy Policy
Legal

Your data.
Your control.

m0xy handles your M-PESA payments and personal finances. This page explains exactly what data we collect, why we collect it, and what rights you have over it.

Version 1.0 Effective: May 2026 Kenya Data Protection Act, 2019 ODPC Compliant
01

Who we are

m0xy is operated by MOXY EXPENSE TRACKER, a business registered in Kenya and run by Brian Kinyua. We are the data controller for all personal data processed through the m0xy app — meaning we decide what is collected and why.

DetailInformation
Business nameMOXY EXPENSE TRACKER
Operated byBrian Kinyua
CountryKenya
Privacy contactprivacy@m0xy.app
Websitehttps://m0xy.app
02

What we collect

We collect only what is necessary to make m0xy work. Here is a plain breakdown.

Account data

  • Your phone number — used as your account identifier and to send M-PESA payment requests to your device
  • Your name — asked for when you first sign in, and used to greet you and personalise the app. You can change it any time in your profile, or ask us to delete it by deleting your account

Transaction data

  • M-PESA phone number used for each payment
  • Payment amount and status (pending, confirmed, failed)
  • M-PESA receipt number — for your records and reconciliation
  • Checkout request ID — Safaricom's reference for each STK Push
  • Date and time of each transaction
  • Transaction category (e.g. food, transport) — assigned by you
  • Paybill or till number associated with the payment

Budget and category data

  • Spending limits you set per category
  • Custom categories you create (name and icon)

Merchant data (merchant accounts only)

  • Business name and M-PESA shortcode
  • Payment session details (name, type, amount, status, timestamps)
  • Session count — used for tier management

Technical data

  • Crash reports — device type, OS version, app version (via Sentry — no payment data included)
  • Anonymised app usage events — screen views, feature interactions (via PostHog — no financial data included)
  • Randomly generated, per-install session IDs — cannot identify you across reinstalls
03

M-PESA payments

m0xy uses the Safaricom Lipa Na M-PESA Online (STK Push) API. Here is exactly what happens when you make a payment:

  • m0xy sends your phone number, the payment amount, and the merchant shortcode to Safaricom over an encrypted connection
  • Safaricom sends a payment prompt to your phone — you confirm by entering your M-PESA PIN directly on your device
  • m0xy never sees or stores your M-PESA PIN
  • Safaricom sends a payment result to our backend, which we store as your transaction record

What we never do: We never initiate a charge without your explicit action in the app. We never share your transaction data with advertisers. We never use your financial data for automated decisions that affect you.

Safaricom's handling of your data through M-PESA is governed by Safaricom's own Privacy Policy and M-PESA Terms, which are separate from this policy.

04

How we use your data

All processing is based on a lawful reason under the Kenya Data Protection Act, 2019 (Section 30).

PurposeLawful basis
Processing your M-PESA paymentsPerformance of contract
Showing your transaction historyPerformance of contract
Budget tracking and spending categoriesPerformance of contract
Payment confirmations and status updatesPerformance of contract / Legitimate interest
Merchant payment sessionsPerformance of contract
Diagnosing app crashes (Sentry)Legitimate interest — maintaining a reliable app
Understanding feature usage (PostHog)Legitimate interest — you may opt out anytime
M-PESA API compliance and transaction loggingLegal obligation (Safaricom Daraja API terms)
Kenya Data Protection Act complianceLegal obligation
05

Who we share your data with

We do not sell your personal data. We share data only with the providers required to operate m0xy.

ProviderWhat is shared and why
Safaricom (M-PESA)Your phone number and payment amount — required to process STK Push payments. Safaricom is a separate data controller for data they hold.
Google FirebaseYour account data and transaction records are stored in Firebase. Data may be processed outside Kenya under Google's data processing terms.
Railway (backend hosting)Our payment callback server is hosted on Railway (USA). No personal data is stored permanently on Railway — it passes through to Firebase.
Sentry (error monitoring)Crash logs are sent to Sentry (USA). No payment data, phone numbers, or financial information is sent to Sentry.
PostHog (analytics)Anonymised usage events sent to PostHog (USA). No phone numbers or transaction data are shared.
Regulatory authoritiesWe may disclose data if required by a Kenyan court order or lawful instruction from the ODPC or another authority.

Where providers are based outside Kenya, we ensure appropriate safeguards are in place consistent with Section 48 of the Kenya Data Protection Act, 2019.

06

How long we keep your data

Data categoryKept for
Transaction records3 years from the transaction date, or until account deletion
Account and profile dataUntil you delete your account (processed within 30 days)
Budget and category dataUntil you delete your account or the data within the app
Crash logs (Sentry)90 days — then automatically deleted by Sentry
Usage analytics (PostHog)24 months, then anonymised or deleted
M-PESA callback data3 years — required for payment reconciliation
07

Your rights

Under the Kenya Data Protection Act, 2019, you have the following rights over your personal data. To exercise any of these, email privacy@m0xy.app — we respond within 21 days.

RightWhat it means
AccessRequest a copy of the personal data we hold about you
RectificationAsk us to correct inaccurate or incomplete data
ErasureAsk us to delete your data — except where we have a legal obligation to retain it (e.g. transaction records)
ObjectObject to processing based on legitimate interest, including PostHog analytics
Opt out of analyticsDisable PostHog usage tracking in the app settings — this does not affect payments or core features
Data portabilityRequest an export of your transaction and budget data in a machine-readable format
Lodge a complaintIf you believe your rights have been violated, complain to the ODPC at odpc.go.ke
08

How we protect your data

Technical measures

  • All data in transit between the app and our backend is encrypted using HTTPS/TLS
  • All communication with the Safaricom Daraja API is encrypted using HTTPS/TLS
  • Firebase access control rules ensure each user can only access their own data
  • M-PESA API credentials are stored as environment variables — never in app code or client-side code
  • Sentry is configured with PII scrubbing — no payment or phone number data reaches Sentry

Data breach response

If a data breach occurs that puts your rights at risk, we will notify the ODPC within 72 hours and notify affected users without undue delay — as required by Section 43 of the Kenya Data Protection Act, 2019.

09

Analytics and monitoring tools

Sentry — crash monitoring

We use Sentry to detect and fix app crashes. Sentry collects error stack traces, device type, OS version, and app version. It uses a randomly generated per-install ID — not your phone number or any payment data. PII scrubbing is enabled. Data is held on Sentry servers in the USA for 90 days.

PostHog — product analytics

We use PostHog to understand how users move through the app. PostHog captures screen views and feature interactions using a randomly generated per-install identifier. Your M-PESA phone number, payment amounts, and transaction receipts are never sent to PostHog. You can opt out at any time in app settings.

Neither Sentry nor PostHog is used for advertising. Both act as data processors under our instruction and are bound by data processing agreements.

10

Children's privacy

m0xy is not intended for users under 18. M-PESA accounts in Kenya require the account holder to be 18 or older, which acts as a natural constraint. If we become aware that we have collected data from a minor, we will delete it promptly.

11

Changes to this policy

When we make material changes to this policy, we will notify you via a prominent in-app notice before the changes take effect, and update the effective date at the top of this page. The current version is always available at m0xy.app/privacy.

Your continued use of m0xy after a policy update constitutes acceptance of the revised terms.

12

Contact us

Questions, requests, or concerns about your data:

Privacy enquiries
privacy@m0xy.app
Legal matters
legal@m0xy.app
Website
m0xy.app
Response time

Within 21 days of receipt

Kenya Data Protection Regulator

If you are not satisfied with our response, you may lodge a complaint with the Office of the Data Protection Commissioner (ODPC):

odpc.go.ke  ·  Britam Towers, 12th Floor, Hospital Road, Upperhill, Nairobi

↑