Mexico: dual wallets (Stripe + dLocal) — stakeholder briefing

Audience: Business stakeholders
Purpose: Standalone read — context, why we are doing this, and quantified risk if Stripe wallet were turned off when dLocal wallet is enabled
Ticket / epic: REVPAY-6358
Product request (PR): DocPlanner/dp-payments-ai#255

1. Executive summary

In Mexico, many patients already pay with cards saved in the Stripe wallet (one-click style pay-ins). Today the product cannot treat Stripe and dLocal wallets as two parallel, patient-safe capabilities without a deliberate design.

If we enabled dLocal wallet in a way that automatically disabled Stripe wallet, patients who rely on saved Stripe cards would be pushed back to full card entry (e.g. Stripe Checkout) on every payment. That is a high-friction change at scale.

Evidence from BroadDB (Mexico payments shard) shows non-trivial saved-card payment volume and TPV and meaningful repeat usage in 2026. The REVPAY-6358 request (PR #255) describes multiple wallets (per customer provider, combined /wallet, dedupe, symmetric Stripe/dLocal behaviour) so we can add dLocal wallet without breaking Stripe wallet — protecting continuity of online pay-ins and reducing the risk of complaints, in-office payment substitution, and payment-setup churn.

This document is evidence + narrative; PR #255 is the formal scope and acceptance criteria for delivery.


2. What we are doing (short)

Why: continuity of payment experience, TPV protection, fewer support escalations to doctors, lower risk of moving clinics from mandatory to optional online payment.


3. What could go wrong without this feature (plain language)

If Stripe wallet is disabled while dLocal wallet is enabled (single-wallet assumption):

  1. Friction: Patients must re-enter card details far more often → drop-off at pay step.
  2. Behavioural substitution: More pay in office instead of online prepay.
  3. Doctor-facing noise: Patients complain to the doctor (“your online payment is broken / harder”).
  4. Product churn: Clinics may turn off mandatory prepay or reduce online payment adoption.

The data below shows that Stripe saved-card pay-ins are already a real lane in MX, not a niche edge case — so the risk is material, not hypothetical.


4. Data evidence (Mexico, Stripe “saved card” pay-ins)

Environment: DocPlanner BroadDB — Mexico payments data (anonymised dev snapshot).
Currency: MXN for all rows in these extracts.

4.1 Definitions (same across all metrics)

We count captured online marketplace pay-ins where the patient paid with a card saved in the Stripe wallet (one-click style), rather than entering full card details from scratch on each payment like a typical one-off checkout.

Wallet inventory means Stripe wallet cards that are authorised and active for the patient (not marked fraudulent, not deleted).

4.2 Wallet scale (authorised Stripe cards on file)

MetricValue
Distinct authorised Stripe wallet cards74,507
Distinct patients68,130

4.3 2026 usage — saved-card pay-ins and repeat visits

Calendar year 2026 (through snapshot date on BroadDB):

MetricValue
Captured marketplace payments (saved Stripe card)22,929
Successful visit payments linked to those pay-ins22,610 payment rows
Distinct patients (visit path)14,590
Distinct visit bookings (visit path)22,610
Patients with >1 visit booking paid with the same saved Stripe card in 20262,606
Patient–card pairs with >1 such visit booking2,627

Custom transactions (same Stripe saved-card definition, 2026): 203 patients, 273 successful custom payments; 29 patient–card pairs with >1 custom payment on the same card (separate from visit “booking” counts).

Interpretation for stakeholders: a large cohort already reuses the same saved Stripe card across multiple bookings in a single year. Forcing full manual card entry repeatedly is likely to hurt conversion disproportionately for this group.

4.4 “Heavy wallet” cards (all time, >1 payment)

MetricValue
Distinct saved Stripe cards with >1 captured marketplace payment (all time)14,176
Highest observed payment count on a single saved card91 payments

4.5 Monthly TPV and transaction counts (saved Stripe card pay-ins)

TPV is the sum of payment amounts per calendar month (by payment date in the snapshot).
April 2026 excluded (partial month in snapshot). Newest month first.

MonthTPV (MXN)Transactions
2026-037,265,787.007,626
2026-026,028,845.006,252
2026-016,846,325.017,222
2025-125,328,957.025,718
2025-115,465,969.046,005
2025-105,210,465.025,680
2025-095,188,371.045,565
2025-085,138,629.005,722
2025-075,304,916.015,878
2025-064,982,388.415,540
2025-054,225,625.024,624
2025-045,092,623.045,278
2025-035,021,522.515,685
2025-024,276,754.004,885
2025-014,529,784.405,243
2024-123,253,044.133,767
2024-113,668,616.404,248
2024-103,838,942.004,496
2024-093,342,931.993,959
2024-082,952,252.003,568
2024-072,926,689.003,584
2024-062,662,931.003,277
2024-052,589,666.503,185
2024-042,510,449.253,055
2024-032,219,613.002,717
2024-022,011,583.752,527
2024-012,194,290.002,775
2023-121,427,342.501,825
2023-11543,968.00672
2023-10175.007

Takeaway: All monthly numbers in the table are per calendar month (not a running total for the year). For example, March 2026 alone shows 7,626 saved Stripe–wallet marketplace transactions and 7,265,787 MXN TPV on this BroadDB snapshot — that is one month’s volume, not January+February+March combined. Recent full months sit in a similar multi-million MXN band, so disabling the Stripe wallet when enabling dLocal wallet carries real risk of monthly online pay-in decline and churn, not a marginal edge case.


5. How this supports PR #255 / REVPAY-6358

Stakeholder concernHow the data helpsHow the feature (request) answers
“Is Stripe wallet marginal?” No — large authorised card base (~74k cards / ~68k patients). A single recent full month (e.g. Mar 2026) already shows ~7.6k transactions and ~7.3M MXN TPV from saved Stripe card pay-ins alone — per month, not year-to-date. Dual-wallet design keeps Stripe wallet alive while dLocal wallet is introduced.
“Do patients actually reuse saved cards?” Yes — thousands of patients with >1 booking on the same saved card in 2026 alone. Per-payment / per-provider wallet rules avoid forcing everyone back to full card entry.
“What breaks if we flip a single global switch?” Saved-card lane is economically meaningful; friction hits repeat payers hardest. Request defines symmetric Stripe/dLocal behaviour, combined /wallet, dedupe, and rollout considerations — aimed at no pay-in cliff.

Important: PR #255 is the product request (scope + AC). It aligns with the evidence above; guaranteeing no TPV disruption still depends on implementation quality, rollout gates, and monitoring in production.


6. Limitations (read before quoting numbers externally)

  1. BroadDB is anonymised dev data — excellent for direction and order-of-magnitude, not for audited financial statements or investor filings.
  2. Month boundaries use stored payment timestamps in the snapshot (no Mexico-local timezone adjustment).
  3. Metrics count captured pay-ins with a saved Stripe card — reconciliation to finance / NetSuite may differ slightly.
  4. dLocal wallet volume is not the subject of this extract; this doc is intentionally Stripe-wallet evidence for the “do not disable” argument.

Prepared for stakeholder circulation. For the authoritative delivery spec, use PR #255 and Jira REVPAY-6358. Personal workflow note — not affiliated with the company dLocal.