Google has upgraded the Google Pay API so that merchant‑initiated transactions are no longer an awkward edge case bolted onto a customer‑initiated flow. The update gives developers explicit tools to describe future charges, which improves user transparency, reduces failed payments, and makes it easier to stay aligned with card‑network rules around subscriptions and stored credentials.
Why merchant‑initiated transactions needed an upgrade
Historically, the Google Pay API was optimised around customer‑initiated transactions, where the user is present in session and approves a one‑off payment. Merchant‑initiated transactions, like subscription renewals or a hotel charging a card after check‑out, were technically possible, but the API had no clean way for merchants to declare the intent and structure of those future charges.
That lack of structure caused three problems:
- Limited transparency for users about what would happen after the initial payment.
- Less context for payment processors and card networks, increasing the risk of declines.
- More custom logic for developers, who had to handle billing models largely outside the Google Pay request itself.
The new release addresses this by baking merchant‑initiated scenarios directly into the payment data request.
The three new MIT building blocks
The updated Google Pay API introduces three dedicated objects for capturing future payment intent in a structured way:
- recurringTransactionInfo – for subscriptions and repeating charges.
- deferredTransactionInfo – for one‑time charges scheduled in the future.
- automaticReloadTransactionInfo – for balance‑based top‑ups.
Each object lets you describe when and how you plan to charge the user, so the payment sheet and downstream systems have a clear picture of what is coming.
1. Recurring transactions: subscriptions done properly
recurringTransactionInfo covers use cases like SaaS subscriptions, memberships, or any plan billed on a schedule. Within this object you can define:
- Billing frequency (daily, weekly, monthly, yearly) and period length.
- Fixed or variable amounts, including total price for a defined term.
- Introductory periods, trials, or special launch pricing via
introductoryPeriodInfo. - One or more
recurrenceItems, each with its own label, price, status, and duration. - A
managementUrlwhere users can manage or cancel their plan.
When a user pays through Google Pay, the interface can now clearly present the recurring schedule instead of just a single upfront amount, which helps set expectations and reduce billing disputes later.
2. Deferred transactions: authorise now, charge later
deferredTransactionInfo is aimed at situations where you take details now but only charge once an event happens, such as:
- Hotel stays and other hospitality bookings.
- Pre‑orders for products that ship in the future.
- Services where a final amount is only known at the end of the period.
You can specify an exact date and time for the deferred charge, giving both the Google Pay sheet and the processor enough context to treat it correctly as a delayed merchant‑initiated transaction, not just a generic payment.
3. Automatic reloads: keeping balances topped up
automaticReloadTransactionInfo is designed for wallets and stored‑value balances that automatically top up when they fall below a threshold. Typical examples include:
- Transit or commuter cards that reload when balance is low.
- Gaming or digital wallets that auto‑add funds at a set level.
- Subscription‑adjacent services that rely on prepaid balances.
Within this object, you define triggers like minimum balance thresholds and reload amounts so that both the user and the payment stack can see exactly when future charges will fire.
It is important to note that, even with these enhancements, your system is still responsible for actually triggering the charges in line with the billing agreement. The API gives you structure and signalling, not an out‑of‑the‑box billing engine.
Smarter tokens and fewer failed payments
Alongside the new transaction objects, Google Pay now offers a more robust approach to payment continuity and credential lifecycle. When a user selects a card and one of the merchant‑initiated types is specified, the decrypted payload delivered to your payment service provider includes both:
- A DPAN (device‑specific primary account number).
- A merchant token ID that can be stored for future use.
Your payment provider is expected to store that merchant token ID with the rest of the user’s payment credentials. On top of that, a tokenUpdateUrl lets you receive notifications when the underlying payment credential changes, for example when a card is reissued or about to expire.
The practical impact for developers and businesses is:
- Fewer involuntary subscription cancellations caused by expired cards.
- Higher authorisation success for properly flagged merchant‑initiated transactions.
- Easier compliance with card‑network requirements that call for explicit MIT declaration.
Better transparency for users, less friction for support
On the user side, the key improvement is visibility. Because future charges are described in structured form, Google Pay can show:
- Clear labels for recurring subscriptions.
- Billing cadence and, where relevant, the length of the commitment.
- Introductory pricing periods and what happens after they end.
- Where to go (via
managementUrl) to manage or cancel the agreement.
This makes it much harder for “surprise” charges to happen. It also tends to reduce chargebacks and customer support queries because users see a clear summary at sign‑up instead of a generic single‑payment view.
What developers need to change in practice
If you already use Google Pay for simple one‑off payments, the core integration model remains familiar. The changes are mostly in how you build your PaymentDataRequest and how you handle tokens downstream:
- Extend your requests to include one of
recurringTransactionInfo,deferredTransactionInfo, orautomaticReloadTransactionInfowherever relevant. - Populate these objects with real billing details rather than placeholders so the UI and payment networks can treat them correctly.
- Capture and store the merchant token ID from the decrypted payload via your payment provider, alongside the usual card details.
- Implement a
tokenUpdateUrlendpoint to receive and act on credential‑update notifications.
From there, your own billing system continues to schedule and initiate charges based on the agreements you have declared to the user.
Where this leaves merchant‑initiated billing on Google Pay
The net result of these enhancements is that merchant‑initiated transactions on Google Pay now look and behave like first‑class citizens rather than special cases. Subscriptions, deferred payments, and automatic reloads can be described explicitly, token lifecycle events can be handled with fewer surprises, and users see far clearer information about what they are signing up for.
For teams building SaaS products, marketplaces, or any service with recurring or delayed billing, these updates reduce the amount of custom plumbing you need, while also improving authorisation rates and user trust.
