--- title: customerPaymentMethodRemoteCreate - GraphQL Admin description: "Create a payment method from remote gateway identifiers. NOTE: This operation processes payment methods asynchronously. The returned payment method will initially have incomplete details. Developers must poll this payment method using customerPaymentMethod query until all payment method details are available, or the payment method is revoked (usually within seconds)." 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. Create a payment method from remote gateway identifiers. NOTE: This operation processes payment methods asynchronously. The returned payment method will initially have incomplete details. Developers must poll this payment method using customerPaymentMethod query until all payment method details are available, or the payment method is revoked (usually within seconds). ## 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 ```json { "customerId": "gid://shopify//10079785100", "remoteReference": { "stripePaymentMethod": { "customerId": "", "paymentMethodId": "" }, "authorizeNetCustomerPaymentProfile": { "customerProfileId": "", "customerPaymentProfileId": "" }, "braintreePaymentMethod": { "customerId": "", "paymentMethodToken": "" }, "adyenPaymentMethod": { "shopperReference": "", "storedPaymentMethodId": "" }, "paypalPaymentMethod": { "billingAgreementId": "", "billingAddress": {} } }, "disableAddressValidation": true } ``` ##### Variables ``` { "customerId": "gid://shopify//10079785100", "remoteReference": { "stripePaymentMethod": { "customerId": "", "paymentMethodId": "" }, "authorizeNetCustomerPaymentProfile": { "customerProfileId": "", "customerPaymentProfileId": "" }, "braintreePaymentMethod": { "customerId": "", "paymentMethodToken": "" }, "adyenPaymentMethod": { "shopperReference": "", "storedPaymentMethodId": "" }, "paypalPaymentMethod": { "billingAgreementId": "", "billingAddress": {} } }, "disableAddressValidation": true } ``` ##### Schema ``` 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! } ```