Admin GraphQL API2026-07

customerPaymentMethodRemoteCreate
Payment method identifier becomes required

Starting with API version 2026-07, the payment method identifier field becomes required in the Stripe, Authorize.net, and Braintree inputs. It was optional in the schema, but actually needed for payment processing all along. This change aligns the schema with reality.

On this page
  1. 30-second overview: what's changing
  2. The three affected fields (by gateway)
  3. How it works: why make it required
  4. Check whether you need to take action
  5. Five key points for developers
  6. Three practical use cases
  7. One-line summary for proposals

130-second overview: what's changing

API version 2026-07 and later,customerPaymentMethodRemoteCreate when using the mutation Stripe / Authorize.net / Braintree in inputs forthe payment method identifier field becomes required.
These were previously optional in the schema, but were always needed for payment processing. This change aligns the schema with reality.
~2026-04

Before: optional in the schema

Even without passing the identifier, schema validation passed. But that payment method couldn't be used for payment processing, so it was created in a non-functional state.

2026-07~

After: required in the schema as well

Without the identifier, the mutation is rejected at the validation stage. This prevents non-functional payment methods from being silently created in the first place.

2The three affected fields (by gateway)

Three fields become required, one per gateway. You only need to check the row for the gateway you're integrating with.

GatewayInput typeField becoming required
Stripe RemoteStripePaymentMethodInput paymentMethodId Required
Authorize.net RemoteAuthorizeNetCustomerPaymentProfileInput customerPaymentProfileId Required
Braintree RemoteBraintreePaymentMethodInput paymentMethodToken Required
Stripe
paymentMethodId
Payment method ID on Stripe's side
Auth.net
customerPaymentProfileId
Customer payment profile ID
Braintree
paymentMethodToken
Braintree payment method token

3How it works: why this is being made required

There was a gap where the field was "optional in the schema" but "required at runtime." This change closes that gap.

Before (~2026-04) Without an identifier, run the mutation Schema validation passes The payment method is created Cannot be used for payment processing (A non-functional method is left behind) Going forward (2026-07~) Without an identifier, run the mutation At the validation stage, rejected with an error You catch it early (Fix the implementation on the spot) Only methods that are guaranteed to work are created
In other words, this change is not the addition of a new constraint, but rather the codification in the schema of a runtime requirement that already existed. Shopify's own description frames it as a change that "aligns the API schema with existing runtime requirements."

4Determine whether you need to take action

No action needed

You already pass an identifier

Current state customerPaymentMethodRemoteCreate If you are already passing the relevant identifier field when calling the mutation,no changes are required. You can safely bump to 2026-07 as is.

Action required

You are not passing an identifier

Before adopting 2026-07, update your integration to include the identifier corresponding to your gateway in the input. If you bump to 2026-07 without updating, the mutation will be rejected.

The impact is limited to customerPaymentMethodRemoteCreate Stripe / Authorize.net / Braintree remote inputsintegrations that use the above. Effects on other creation paths, and how payment methods previously created without an identifier are handled, are not covered in this article Not specified.

55 key points engineers should know

2026-07

1. The trigger is API version 2026-07

The requirement takes effect on requests targeting 2026-07 or later. While you're on earlier versions, behavior is unchanged (the field remains optional in the schema). The version upgrade is the inflection point.

3

2. Scope is limited to 3 fields across 3 gateways

Stripe's paymentMethodId, Authorize.net's customerPaymentProfileId, and Braintree's paymentMethodToken. You only need to check the value for the gateway you actually use.

3. A schema change from optional to required

A field that was optional in the schema becomes non-null (required). If you use code generation or type checking, regenerating the artifacts lets you catch missing values at compile time.

4. Upgrading without addressing this triggers validation errors

Any integration that doesn't pass the identifier will have its mutation rejected once it moves to 2026-07.Before adopting the version,it's safer to verify in a test environment that the required field is populated.

5. Prevents non-functional payment methods from being created in the first place

Previously, creation itself succeeded even without an identifier, andyou only discovered it was unusable at payment processing time— a delayed failure. With the requirement, the create request itself fails, so you catch the problem before users get stuck at checkout. This benefits both data quality and early failure detection.

63 practical use cases for your work

USE CASE 1

Turn it into a pre-flight checklist before the 2026-07 upgrade

Problem
With routine API version upgrades, you don't know which integrations will break, and only notice failures after upgrading.
Action
customerPaymentMethodRemoteCreate Enumerate all call sites of, and add to your checklist whether the identifier is passed for Stripe/Authorize.net/Braintree respectively. Bump your test environment to 2026-07 and verify.
Outcome
Identify required fixes before the production upgrade. Prevent customers from being unable to complete payment at checkout.
Technical notes
Only 3 fields are affected (paymentMethodId / customerPaymentProfileId / paymentMethodToken). You can mechanically pick up the call sites with grep.
unusable active inventory
USE CASE 2

Surface integration bugs that have been failing silently

Problem
Some remotely created payment methods couldn't be used for payment, and the cause went unidentified and unaddressed.
Action
This requirement makes it official that "creating without an identifier = non-functional," so use it as a starting point to investigate whether past integrations have been missing identifiers.
Impact
Helps isolate one previously unknown cause of payment failures. Fixing the implementation prevents recurrence.
Technical notes
The article does not describe the behavior of payment methods previously created without identifiers, nor how to remediate them. Real-world behavior needs to be verified separately.
USE CASE 3

Building a foundation for type generation + CI to automatically detect version diffs

Problem
Each time Shopify updates the API version, breaking changes such as new requirements have to be tracked manually and often get missed.
Action
Pin schema-based type generation to 2026-07 and build it into CI so that fields newly marked as required (such as the three in this change) surface as type errors.
Impact
Detects "optional → required" changes mechanically rather than relying on human review. The same approach can be applied to future changes of this kind.
Technical notes
This article is about a schema definition change, not an admin UI procedure—the kind of change that fits naturally into a type generation and lint pipeline.

7One-line summary for proposals

"Starting with API 2026-07, customerPaymentMethodRemoteCreate the payment method identifier becomes required.
It only affects three fields for Stripe / Authorize.net / Braintree—if you're already passing them, no action is needed.
This is a schema change that codifies actual behavior, so just audit any integrations that aren't yet compliant before upgrading the API version."