Skip to content

v4: normalize Paytm and Kotak notifications - #47

Merged
Phloraxx merged 1 commit into
mainfrom
v4/notification-normalization
Sep 1, 2026
Merged

v4: normalize Paytm and Kotak notifications#47
Phloraxx merged 1 commit into
mainfrom
v4/notification-normalization

Conversation

@Phloraxx

@Phloraxx Phloraxx commented Sep 1, 2026

Copy link
Copy Markdown
Owner

Scope

Fifth stacked PayGate v4 implementation slice. Depends on PR #46.

Implements

  • pure server-side notification normalization; no HTTP/Android wiring yet
  • Paytm Business notification parser for com.paytm.business
  • Kotak credit parser for Google Messages notifications
  • Google Messages package alone is insufficient: Kotak marker + genuine incoming-credit wording are required
  • extracts exact amount, payer name and payer UPI ID when available
  • Paytm uses explicit Received on ... time when present, otherwise Android notification post time
  • Kotak currently uses notification post time unless a trustworthy message timestamp parser is added later
  • .00 amounts are rejected as non-PayGate
  • refunds, reversals, cashback, settlement, debit/purchase wording and unrelated messages are rejected
  • no UTR/RRN requirement or extraction in the v4 contract
  • GPay remains unsupported in v4.0

Tests

Covers the captured Paytm notification format, Paytm fallback time, .00, refund/debit/settlement rejection, Kotak sender/profile inference, UPI extraction without reference IDs, rejection of other-bank Google Messages, OTP/debit/cashback rejection, and unsupported GPay. Unit/race/vet pass locally.

Safety

Pure parsing module only. No production listener, route, match or state mutation is wired yet.

@Phloraxx
Phloraxx force-pushed the v4/payment-lifecycle branch from d041bcb to e6803e5 Compare September 1, 2026 03:57
@Phloraxx
Phloraxx force-pushed the v4/notification-normalization branch from 0ffb900 to 595f456 Compare September 1, 2026 03:57
@Phloraxx
Phloraxx force-pushed the v4/payment-lifecycle branch from e6803e5 to 3ab05a0 Compare September 1, 2026 04:24
@Phloraxx
Phloraxx force-pushed the v4/notification-normalization branch from 595f456 to 37b188e Compare September 1, 2026 04:24
@Phloraxx
Phloraxx changed the base branch from v4/payment-lifecycle to main September 1, 2026 05:27
@Phloraxx
Phloraxx marked this pull request as ready for review September 1, 2026 05:27
@Phloraxx
Phloraxx merged commit 52b1350 into main Sep 1, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant