Legal Documentation

Privacy Policy

This policy describes how MyHUB collects, uses, and protects your personal information when you access our services.

Last updated: January 15, 2026  ·  Effective immediately
Plain-language summary: MyHUB is a mobile transaction management tool for M-Pesa agents. We collect only the information we need to run the service. We do not sell your data. We do not share it with third parties outside of what is required to operate. This policy is governed by Kenyan law.
1

Scope and Applicability

This Privacy Policy ("Policy") applies to all users of the MyHUB mobile application ("App"), the MyHUB web dashboard, and any related services operated by the MyHUB team ("we", "us", "our"). It governs the collection, processing, storage, and disclosure of personal data in connection with those services.

This Policy is issued in compliance with the Kenya Data Protection Act, 2019 (No. 24 of 2019) and the Data Protection (General) Regulations, 2021 (Legal Notice No. 206). Where you access the service from outside Kenya, we continue to apply the same standards, and where applicable, we align with the requirements of the General Data Protection Regulation (EU) 2016/679 (GDPR).

By using the App or any related service, you confirm that you have read and understood this Policy and that you consent to the processing of your personal data as described here. If you do not agree, you should discontinue use of the service immediately.

2

Data We Collect

2.1 Information You Provide Directly

When you register and use MyHUB, you provide us with:

Data ElementPurposeRequirement
Phone number (Kenyan mobile)Account identity, SMS notification deliveryRequired
Store or business nameAgent identification on dashboardRequired
M-Pesa till or paybill numberTransaction routing and confirmation matchingRequired
Email addressAccount recovery, support communicationOptional
Agent codeWebSocket session identification, device bindingRequired

2.2 Transaction Data

As you use the service, we process and store records of:

  • USSD requests sent, including timestamps, execution results, and response codes
  • M-Pesa transaction confirmations received by SMS, including amounts, reference codes, and counterparty numbers
  • Pending, successful, and failed transaction histories
  • Offer configurations you set within the application

Transaction data is necessary for the core function of the service. It cannot be disabled without rendering the service non-functional. Retention periods are described in Section 6.

2.3 Device and Technical Data

We automatically collect certain technical information to ensure the service operates correctly:

  • Device identifiers: Android device ID, a hashed device public key for premium seat binding
  • Operating system and app version: Used for compatibility checks and update notifications
  • Connectivity state: Online/offline status for transaction queue management
  • Crash and error logs: Stack traces, error codes (no personal content is included)
  • IP address: Logged server-side for abuse prevention and rate limiting only; not stored long-term

We do not collect GPS location, microphone input, camera images, contacts, calendar data, or any information unrelated to the financial transaction management function of the App.

3

Device Permissions

MyHUB requests the following Android permissions. Each permission is used only for the stated purpose and nothing beyond it.

PermissionWhy We Need It
READ_SMS / RECEIVE_SMS To detect and parse incoming M-Pesa confirmation messages so that transaction results can be recorded automatically. We read only messages that originate from known M-Pesa shortcodes.
BIND_ACCESSIBILITY_SERVICE To automate the entry and execution of USSD codes on your behalf. This permission is used solely for USSD navigation. We do not read screen content from other applications, do not capture passwords, and do not interact with any UI element outside the USSD dialler provided by the carrier.
INTERNET / ACCESS_NETWORK_STATE To synchronise transaction data with Firebase, establish a WebSocket connection to our coordination server, and deliver real-time status updates to connected dashboards.
READ_PHONE_STATE To detect when an incoming call interrupts a USSD session, so that the session can be safely paused and resumed without data loss.
WAKE_LOCK / FOREGROUND_SERVICE To keep the device awake and the service running during transaction processing windows, preventing transactions from failing due to the device entering sleep mode.
RECEIVE_BOOT_COMPLETED To restart the background service automatically after a device reboot, ensuring queued transactions are not permanently lost.
Accessibility Service Declaration: In accordance with Google Play policy and Section 29 of the Kenya Data Protection Act, we explicitly declare that the Accessibility Service permission is used exclusively for USSD code automation. It is not used to collect personal data, monitor user activity in other applications, or perform any function unrelated to the automated execution of carrier service codes.
4

How We Use Your Data

We use the personal data we hold only for the following defined purposes:

  • Service operation: Processing USSD transactions, matching SMS confirmations to pending requests, updating transaction status records, and delivering real-time notifications to connected interfaces.
  • Account management: Creating and maintaining user accounts, authenticating sessions, enforcing single-device login, and managing subscription entitlements.
  • Fraud detection and transaction integrity: Analysing patterns in transaction data to identify anomalous behaviour, prevent duplicate processing, and protect users against chargebacks and fraud.
  • Service improvement: Reviewing aggregated, anonymised usage metrics to identify performance bottlenecks, prioritise feature development, and fix defects.
  • Customer support: Responding to support requests, investigating reported issues, and providing guidance on service use.
  • Legal and regulatory compliance: Meeting our obligations under the Kenya Data Protection Act, cooperating with lawful requests from competent authorities, and enforcing our Terms of Service.
  • Security operations: Protecting our infrastructure against unauthorised access, denial-of-service attacks, and other threats through logging, rate limiting, and anomaly detection.

We do not use your data for advertising, profiling for marketing purposes, or any form of resale to third parties.

6

Data Storage and Retention

6.1 Where Data Is Stored

  • Google Firebase (Cloud): User profiles, agent data, transaction history, and device status are stored in Firebase Firestore and the Firebase Realtime Database. Google's data centres used for this project are located in the Africa (Johannesburg) and Asia-Southeast (Singapore) regions. Google LLC is certified under ISO/IEC 27001:2022 and complies with the EU–US Data Privacy Framework.
  • Device storage (SQLite): A local cache of recent transactions is maintained on your device for offline operation. This data is stored in the application's private storage directory, inaccessible to other apps.
  • Device storage (SharedPreferences, encrypted): Session credentials and subscription entitlement data are stored in AES-256 encrypted SharedPreferences using the Android Keystore system.

6.2 Retention Periods

We apply the following retention schedule:

Data CategoryRetention PeriodBasis
Active transaction records (cart, success, failed)48 hours from creation, then automatically purgedAutomated cleanup function
Renewal and subscription recordsUntil expiry of the subscription period, then purgedContractual necessity
User profile and account dataDuration of account existence; deleted within 30 days of account closureContractual necessity
Security and audit logs90 days rollingLegitimate interests — security
Support correspondence24 months from resolutionLegitimate interests — dispute resolution

When you delete your account, we initiate a complete data purge across all Firebase collections associated with your UID. This process is completed within 30 days. Local device data is cleared immediately upon logout or uninstall.

7

Security Controls

We operate a multi-layered security programme aligned with ISO/IEC 27001:2022 and, where relevant to payment data flows, PCI DSS v4.0 principles. The controls we have deployed include:

  • Transport encryption: All communication between the App, our servers, and Firebase uses TLS 1.2 or higher. Connections are validated against pinned certificates where technically feasible.
  • Credential security: Passwords and session tokens are never stored in plain text. We use Firebase Authentication's industry-standard credential management, including secure token issuance and revocation.
  • Data isolation: All database queries are scoped to the authenticated user's UID. A user can only read or write their own records. Server-side Firestore Security Rules enforce this at the database layer, independent of application logic.
  • Encrypted local storage: Sensitive data held on the device — notably premium entitlement tokens and session identifiers — is encrypted using AES-256-GCM via the Android Keystore, bound to the device hardware where supported.
  • Rate limiting and abuse prevention: API endpoints are rate-limited per device and per IP address. Repeated failed authentication attempts trigger automatic temporary blocks.
  • Device attestation: The App uses a custom device attestation flow to verify application integrity before issuing session credentials, reducing the risk of credential theft by modified APK variants.
  • Single-device session enforcement: Only one authenticated session per device type is permitted at a time. A new login from another device immediately invalidates the previous session and notifies the affected user.
  • Background worker scheduling: All background operations are handled via Android WorkManager. The App does not use AlarmManager or persistent polling threads that could bypass system security controls.
Important limitation: No security system is infallible. While we apply controls consistent with current industry standards, we cannot guarantee that a determined, sophisticated attacker will never succeed. We will notify affected users without undue delay, and no later than 72 hours after discovery, in the event of a personal data breach that is likely to result in risk to your rights or freedoms, in accordance with Section 43 of the Kenya Data Protection Act 2019.
8

Sharing and Disclosure

We do not sell, rent, or trade your personal data to any third party. We share data only in the following defined circumstances:

  • Service providers: Google LLC (Firebase platform hosting), Vercel Inc. (web infrastructure), and Safaricom PLC (M-Pesa payment network integration) receive data to the minimum extent necessary to deliver their respective services. All providers are contractually bound to process data only on our instructions and to maintain appropriate security standards.
  • Legal requirements: We will disclose personal data where required to do so by a valid court order, warrant, or regulatory directive issued by a competent Kenyan authority, including the Office of the Data Protection Commissioner, the Central Bank of Kenya, or the Communications Authority of Kenya. Where legally permitted, we will notify you before complying.
  • Protection of rights: We may disclose data to the extent necessary to prevent or investigate fraud, enforce our Terms of Service, or protect the safety of users or the public.
  • Business transfers: If MyHUB is acquired by or merged with another entity, your data may be transferred to the successor entity, subject to the same protections described in this Policy. We will provide you with advance notice of any such transfer.

In all cases, we disclose only the minimum data required for the specific purpose and do not grant third parties the right to use your data for their own marketing or commercial purposes.

9

Your Rights Under Kenyan Law

The Kenya Data Protection Act 2019 grants you the following rights in respect of your personal data. You may exercise any of these rights by contacting us using the details in Section 12.

  • Right of access (Section 26 DPA): You may request a copy of the personal data we hold about you and information on how it is being processed. We will respond within 21 days as required by the DPA.
  • Right to rectification (Section 26 DPA): If any data we hold about you is inaccurate or incomplete, you have the right to have it corrected. You can update most information directly through the App settings.
  • Right to erasure (Section 26 DPA): You may request that we delete your personal data. Where we have no legal obligation to retain it and no overriding legitimate interest, we will comply within 30 days. Deletion of your account triggers an automatic full data purge.
  • Right to restrict processing (Section 26 DPA): You may ask us to suspend the processing of your data in certain circumstances — for instance, while a dispute about accuracy is resolved.
  • Right to data portability: You may request an export of the personal data you have provided to us in a structured, machine-readable format (JSON or CSV).
  • Right to withdraw consent: Where processing is based on consent, you may withdraw it at any time without affecting the lawfulness of processing before withdrawal.
  • Right to object (Section 26 DPA): You may object to processing based on legitimate interests where your particular circumstances require it.
  • Right to lodge a complaint: If you believe we have not handled your data lawfully, you have the right to lodge a complaint with the Office of the Data Protection Commissioner of Kenya (www.odpc.go.ke).
How to exercise your rights: Send a written request to [email protected] with the subject line "Data Subject Request". Include your registered phone number for identity verification. We will acknowledge receipt within 3 business days.
10

Children's Privacy

MyHUB is a financial services tool intended strictly for use by adults. The App is designed for registered M-Pesa agents and business operators. You must be at least 18 years of age to create an account.

We do not knowingly collect personal data from persons under 18. If we discover that a user under the age of 18 has provided us with personal data, we will delete that data promptly and close the associated account. If you believe a minor has registered an account, please contact us immediately at [email protected].

11

Changes to This Policy

We may update this Privacy Policy from time to time to reflect changes in the law, our services, or our data practices. When we do, we will update the "Last Updated" date at the top of this page.

For material changes — those that significantly affect your rights or the way we process your data — we will notify you through a prominent in-app notification and, where we hold your email address, by email, at least 14 days before the changes take effect. Your continued use of the service after the effective date of the updated Policy constitutes your acceptance of the changes.

We archive all previous versions of this Policy. If you would like a copy of a specific previous version, contact us using the details below.

12

Contact and Complaints

If you have questions about this Policy, wish to exercise a data subject right, or want to report a concern about how your data is being handled, please reach us through any of the following channels:

Email[email protected]
Websitemyhub.systemhubx.com
Physical addressMyHUB Operations, Nairobi, Kenya
Response timeWe aim to respond to all privacy-related enquiries within 5 business days, and no later than 21 days for formal data subject requests.

If you are not satisfied with our response, you have the right to escalate your complaint to the Office of the Data Protection Commissioner of Kenya, established under Section 5 of the Kenya Data Protection Act 2019, at www.odpc.go.ke.