--- title: customerPaymentMethodRemoteCreate - GraphQL Admin description: >- Creates a customer payment method using identifiers from remote payment gateways like Stripe, Authorize.Net, or Braintree. Imports existing payment methods from external gateways and associates them with [`Customer`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Customer) objects in Shopify. The operation processes payment methods asynchronously. The returned [`CustomerPaymentMethod`](https://shopify.dev/docs/api/admin-graphql/latest/objects/CustomerPaymentMethod) initially has incomplete details while Shopify validates and processes the remote gateway information. Use the [`customerPaymentMethod`](https://shopify.dev/docs/api/admin-graphql/latest/queries/customerPaymentMethod) query to retrieve the payment method status until all details are available or the payment method is revoked. Learn more about [migrating customer payment methods from remote gateways](https://shopify.dev/docs/apps/build/purchase-options/subscriptions/migrate-to-subscriptions-api/migrate-customer-information#step-2-import-payment-methods-for-customers). api_version: unstable api_name: admin source_url: html: >- https://shopify.dev/docs/api/admin-graphql/unstable/mutations/customerPaymentMethodRemoteCreate md: >- https://shopify.dev/docs/api/admin-graphql/unstable/mutations/customerPaymentMethodRemoteCreate.md --- # customer​Payment​Method​Remote​Create mutation Requires `write_customers` access scope. Also: Requires `write_customer_payment_methods` scope. Creates a customer payment method using identifiers from remote payment gateways like Stripe, Authorize.Net, or Braintree. Imports existing payment methods from external gateways and associates them with [`Customer`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Customer) objects in Shopify. The operation processes payment methods asynchronously. The returned [`CustomerPaymentMethod`](https://shopify.dev/docs/api/admin-graphql/latest/objects/CustomerPaymentMethod) initially has incomplete details while Shopify validates and processes the remote gateway information. Use the [`customerPaymentMethod`](https://shopify.dev/docs/api/admin-graphql/latest/queries/customerPaymentMethod) query to retrieve the payment method status until all details are available or the payment method is revoked. Learn more about [migrating customer payment methods from remote gateways](https://shopify.dev/docs/apps/build/purchase-options/subscriptions/migrate-to-subscriptions-api/migrate-customer-information#step-2-import-payment-methods-for-customers). ## Arguments * customer​Id [ID!](https://shopify.dev/docs/api/admin-graphql/unstable/scalars/ID) required The ID of the customer. * disable​Address​Validation [Boolean](https://shopify.dev/docs/api/admin-graphql/unstable/scalars/Boolean) Default:false Disables the requirement for a billing address on the remote payment method. * remote​Reference [Customer​Payment​Method​Remote​Input!](https://shopify.dev/docs/api/admin-graphql/unstable/input-objects/CustomerPaymentMethodRemoteInput) required Remote gateway payment method details. *** ## Customer​Payment​Method​Remote​Create​Payload returns * customer​Payment​Method [Customer​Payment​Method](https://shopify.dev/docs/api/admin-graphql/unstable/objects/CustomerPaymentMethod) The customer payment method. Note that the returned payment method may initially be in an incomplete state. Developers should poll this payment method using the customerPaymentMethod query until all required payment details have been processed. * user​Errors [\[Customer​Payment​Method​Remote​User​Error!\]!](https://shopify.dev/docs/api/admin-graphql/unstable/objects/CustomerPaymentMethodRemoteUserError) non-null The list of errors that occurred from executing the mutation. *** ## Examples * ### customerPaymentMethodRemoteCreate reference ## Mutation Reference ```graphql mutation customerPaymentMethodRemoteCreate($customerId: ID!, $remoteReference: CustomerPaymentMethodRemoteInput!, $disableAddressValidation: Boolean) { customerPaymentMethodRemoteCreate(customerId: $customerId, remoteReference: $remoteReference, disableAddressValidation: $disableAddressValidation) { customerPaymentMethod { # CustomerPaymentMethod fields } userErrors { field message } } } ``` ## Input ##### Variables ```json { "customerId": "gid://shopify//10079785100", "remoteReference": { "stripePaymentMethod": { "customerId": "", "paymentMethodId": "" }, "authorizeNetCustomerPaymentProfile": { "customerProfileId": "", "customerPaymentProfileId": "" }, "braintreePaymentMethod": { "customerId": "", "paymentMethodToken": "" }, "adyenPaymentMethod": { "shopperReference": "", "storedPaymentMethodId": "" }, "paypalPaymentMethod": { "billingAgreementId": "", "billingAddress": {} } }, "disableAddressValidation": true } ``` ##### Schema ```graphql input CustomerPaymentMethodRemoteInput { stripePaymentMethod: RemoteStripePaymentMethodInput authorizeNetCustomerPaymentProfile: RemoteAuthorizeNetCustomerPaymentProfileInput braintreePaymentMethod: RemoteBraintreePaymentMethodInput adyenPaymentMethod: RemoteAdyenPaymentMethodInput paypalPaymentMethod: RemotePaypalPaymentMethodInput } input RemoteStripePaymentMethodInput { customerId: String! paymentMethodId: String } input RemoteAuthorizeNetCustomerPaymentProfileInput { customerProfileId: String! customerPaymentProfileId: String } input RemoteBraintreePaymentMethodInput { customerId: String! paymentMethodToken: String } input RemoteAdyenPaymentMethodInput { shopperReference: String! storedPaymentMethodId: String! } input RemotePaypalPaymentMethodInput { billingAgreementId: String! billingAddress: MailingAddressInput! } ```