Heypenny – Split Bills Fairly app icon

Group ledger sync · Venmo settle reconciliation

Reaching Heypenny group ledgers, scanned receipts and Venmo settle events

The interesting data in Heypenny – Split Bills Fairly sits in its premium group layer: the per-member running ledger that survives across receipts, the line items its on-device scanner produces, and the Venmo settle-up records that close out a tab. Everything below treats that as the integration target.

Where the data sits inside Heypenny

Six surfaces matter, mapped to the user-visible screens described in the developer's Play Store and App Store listings.

DomainOrigin in the appGranularityWhat an integrator does with it
Group ledgerPremium "groups" feature; persisted across sessionsPer-member running balance per group, by currencyReconciliation, accounting export, travel-spend roll-ups
Itemized receiptsOn-device OCR scanner output, attached to a group expenseLine items: name, qty, unit price, allocated tax and tip shareReceipt analytics, category mapping, T&E line capture
ExpensesGroup expense create/edit screens (online and offline)Payer, split rule, tip, tax, currency, timestampPer-trip P&L, expense feed for a wider finance tool
Settle-up eventsVenmo deep-link settle flow, written back to the ledgerPayer, recipient, amount, Venmo reference id, statusPayment reconciliation across Heypenny and Venmo
Currency conversionsLive conversion engine (the listing describes 150+ currencies)Source currency, target currency, rate used, converted amountTravel-cost normalization with an auditable rate trail
Group membershipGroup join / invite layer (joining is free per the listing)Member identity, role, joined-atRoster sync into a wider trip or household tool

Routes to the data

Route A — user-consented account session

The account owner authorizes us to act on their behalf and we drive the same sync calls the mobile client uses. This covers everything the user can see in the app, including premium-only surfaces such as group ledgers and settle history. Reaches all six domains above. Durable as long as the account is.

Route B — native export drop

The developer's privacy policy describes in-app recovery and data export. An automated wrapper around that export is the lightest-touch path for historical data — it captures the full group ledger and expense history without any live session at all. Lower-touch, but the export is a snapshot, so it pairs naturally with Route A for live deltas.

Route C — authorized interface analysis on a sponsor account

Protocol capture against a consenting account on real devices, used to derive the call shape, auth chain, and sequence-number semantics. The output is a spec and runnable client; we arrange the sponsor account or use the buyer's own account during onboarding.

For a typical buyer — a trip tool or T&E platform that wants Heypenny groups inside its own ledger — we recommend pairing B and A: take the export drop once for backfill, then keep deltas current through the cursor sync. Route C is part of how the SDK gets built, not a separate product the buyer runs.

What ships from the build

  • A runnable Python and Node.js SDK targeting Heypenny's sync endpoints, with an offline queue that mirrors the app's own behaviour (works offline, replays on reconnect).
  • A webhook-shaped handler for settle-up events. Heypenny surfaces them through the same sync channel, so the handler is a thin consumer over a long-poll cursor rather than a separate HTTP receiver — the API the buyer's code sees is webhook-shaped either way.
  • An automated test harness wired against a sponsor or buyer-consented account, with recorded fixtures from the protocol capture so the suite runs offline in CI.
  • Ingestion idempotency, by design: group writes carry the cursor sequence number, so a replay after a flaky network does not double-post an expense.
  • A batch-vs-realtime sync plan tailored to the buyer's load — long-poll for active groups, scheduled pull for cold ones.
  • An OpenAPI 3.1 specification captured from the live sync session, for downstream tooling.
  • A short auth-flow report covering the session token chain and the refresh window.
  • A data-minimization memo: which fields the integration actually needs, which to drop at ingest, and how the consent record is logged.

Sync call shape, in code

Illustrative — exact field names are confirmed during the build against the live session, and the SDK we ship is the source of truth.

# Heypenny group ledger pull (illustrative)
class HeypennySync:

    def fetch_group_ledger(self, group_id, since_seq=None):
        # Heypenny's sync is sequence-numbered so offline clients can
        # resume; the integration mirrors the same handshake the mobile
        # client uses, which is how we get idempotent replay for free.
        resp = self._session.get(
            f"/groups/{group_id}/ledger",
            params={
                "since_seq": since_seq,
                "include": "itemizations,settles,fx",
            },
        )
        for entry in resp["entries"]:
            yield self._normalize(entry)   # expense | settle | adjustment

    def on_settle_event(self, payload):
        # Settle-up routes through Venmo as a deep link, then writes the
        # outcome back through the same sync channel. We capture both
        # sides and key on the Venmo reference id for reconciliation.
        if payload["kind"] == "settle.completed":
            self._reconcile(
                expense_ids=payload["expense_ids"],
                venmo_ref=payload["venmo_ref"],
                amount=payload["amount"],
                currency=payload["currency"],
            )

Things we account for in the build

  • On-device OCR boundary. The receipt scanner runs on the phone, not on a Heypenny server. The integration mirrors that boundary — it ingests the scan result the app has already produced, and does not try to re-OCR a paper receipt server-side. If a buyer needs OCR for receipts the user never scanned in-app, we wire a separate OCR step and merge it into the same ledger shape.
  • Offline-then-sync, not request-response. Heypenny was built so a phone can edit expenses with no connectivity and reconcile later. We map that same sequence-number handshake into the SDK so the integration cannot silently drop edits while a client is offline, and so replays after a retry stay idempotent.
  • Live FX, audited at write time. Currency conversion in Heypenny is live; the rate moves between the moment an expense is entered and the moment it is read again. We persist both the source-currency amount and the rate used at write time, so a later audit can reproduce the converted figure without trusting today's rate.
  • Split brain between Heypenny and Venmo. Settle-up money moves through Venmo, but Heypenny writes the outcome back into its ledger with a Venmo reference id. The integration treats that reference as the join key, surfaces unmatched Venmo entries as a separate exception feed, and does not assume the two systems are in lock-step inside any given second.

Heypenny is a US consumer app. The controlling privacy regime for most of its user base is California's CCPA / CPRA plus the broader US patchwork of state laws; for European users, GDPR rules on consent and minimization apply to anything the integration touches. The developer's published posture — on-device OCR, encrypted storage of the group ledger, no resale of user data, in-app recovery and export — is the floor the integration operates from.

The dependable legal basis for the work is the user's own authorization: they consent to us acting under their account, we keep only the fields the integration needs, and every read is logged against the consent record. The CFPB's Personal Financial Data Rights rule (12 CFR Part 1033) is sometimes cited in this corner of the market as a possible future basis for consumer-directed data sharing; it is not in force today (the rule is back in agency reconsideration), and a Heypenny integration does not depend on it. Where the buyer needs an NDA, retention cap, or deletion-on-request hook, those are part of the build.

What we checked

Surfaces and figures above were checked against the developer's own listings and site, opened during this mapping:

Integration shapes we have seen for this kind of app

  • Trip planner pulls the trip ledger. A travel tool ingests Heypenny groups for a given trip and surfaces the per-traveller balance inside the trip page, so the user does not have to switch apps to know who owes whom.
  • T&E feed for a side business. A freelancer's accounting workflow ingests itemized scans for receipts split with a partner, splitting the deductible portion automatically.
  • Household ledger inside a budget app. A personal-finance app reads the user's housemate group and posts net settlements against the user's Venmo activity, deduping with the Venmo reference id.

The app surfaces (visual evidence)

Heypenny screenshot 1 Heypenny screenshot 2 Heypenny screenshot 3 Heypenny screenshot 4 Heypenny screenshot 5 Heypenny screenshot 6 Heypenny screenshot 7
Heypenny screenshot 1 enlarged
Heypenny screenshot 2 enlarged
Heypenny screenshot 3 enlarged
Heypenny screenshot 4 enlarged
Heypenny screenshot 5 enlarged
Heypenny screenshot 6 enlarged
Heypenny screenshot 7 enlarged

Adjacent apps in the splitting space

Useful context for buyers who want a single integration target shaped to fit several apps in this category. These names are mentioned as factual neighbours, not endorsements:

  • Splitwise — the long-running shared-ledger app; per-member running balance is its core data model, and most buyers in this space already think in Splitwise-shaped tables.
  • Tricount — popular European trip splitter; a flat per-trip expense list rather than a running balance across groups.
  • Splid — offline-first splitter with sync on reconnect, the closest cousin to Heypenny on the sync-shape side.
  • Settle Up — strong settle-suggestion engine that minimises the number of transfers needed to clear a group.
  • PartyTab — browser-based tab with a shareable link, no install required; useful contrast for an integration that does not want an app at all.
  • Cino — virtual-card-based splitting at the point of sale, sidestepping the after-the-fact reconciliation Heypenny does.
  • SquadTrip — trip-organising tool that also collects payments, closer to a tour operator than a splitter.
  • Venmo — Heypenny rides Venmo for the actual money movement on settle-up; any integration that cares about settles must touch Venmo data too.
  • Copilot Money — personal-finance app with a Venmo read-side integration, a natural downstream consumer of Heypenny settle events.

Questions Heypenny integrators usually ask

How often does the integration need to poll Heypenny for new expenses, or is there a push channel?

Heypenny's mobile client uses a sequence-numbered sync that works both ways — the integration mirrors that, so a server-side worker can long-poll the cursor instead of guessing at a poll interval. Settle-up events are surfaced through the same channel rather than a separate webhook, so one consumer is enough.

Does the integration include OCR for new receipts, or only existing scans?

The scanner runs on the phone, not on a Heypenny server, so a server-side integration sees only the scans the user has already produced and synced. If you need OCR for receipts a user did not capture in-app, we wire a separate OCR step server-side and merge it into the same ledger shape.

How do you reconcile a settle that went through Venmo with the Heypenny ledger?

Heypenny writes the settle outcome back into its own ledger with a Venmo reference id once the deep link resolves. The integration uses that reference as the join key between the two systems and surfaces any unmatched Venmo entries as a separate exception feed.

What does a Heypenny project actually ship?

A Python or Node.js SDK against the sync endpoints, a settle-event handler, an OpenAPI spec captured from the live session, and an auth/refresh memo. One to two weeks end to end; the build runs against a consenting account or a sponsor sandbox we arrange together.

On price: source-code delivery for a Heypenny integration starts at $300, paid after delivery once you are satisfied, and the alternative is the hosted API on pay-per-call with no upfront fee. Either way the cycle is one to two weeks. Talk to the integration desk

App profile

Heypenny – Split Bills Fairly is published by Ryan Moelter under the package io.moelten.heypenny on Google Play, with a parallel App Store listing. The free tier covers receipt scanning, line-item itemization, tip-and-tax math, and image-summary export to a group chat. The premium tier adds persistent groups, multi-member ledgers, settle-up via Venmo, currency conversion across what the listing describes as more than 150 currencies, and offline-then-sync behaviour. Per its published privacy posture, receipts are OCR'd on the phone, group data is encrypted in transit and on the developer's servers, and in-app data export is supported.

Mapping reviewed 2026-05-27 by the OpenFinance Lab integration desk.