{"title":"Allow a card to use network tokens for digital wallets","category":"default","creationDate":1679062260,"content":"<p>Adding cards to a digital wallet, such as Google Pay or Apple Pay, is a convenient way to make transactions with Adyen-issued cards. However, before your cardholder can start using digital wallets, Adyen needs to authenticate them.<\/p>\n<p>To support this scenario, you must include the cardholder's <a href=\"#send-authentication-data\">authentication data<\/a> when issuing a card.<\/p>\n<h2>How it works<\/h2>\n<p>To allow your cardholders to add their cards to a digital wallet, you must link their mobile phone number, email, or both to their card. You can <a href=\"#send-authentication-data\">link this contact information to their card<\/a> when you create or update the card.<\/p>\n<p>When your cardholder adds a card to a wallet, Adyen sends a one-time password (OTP) to their phone number or email. If you have linked both contact options to the card, the wallet prompts the cardholder to select their preferred option for the OTP. Adyen then sends the OTP to the selected option.<\/p>\n<p>After the OTP is successfully validated, their card is added to the wallet.<\/p>\n<p>For a list of supported digital wallets, reach out to your Adyen contact.<\/p>\n<h2 id=\"send-authentication-data\">Send authentication data<\/h2>\n<p>When creating or updating the card, include the  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/balanceplatform\/latest\/post\/paymentInstruments#request-card-authentication\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">authentication<\/a> object containing a  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/balanceplatform\/latest\/post\/paymentInstruments#request-card-authentication-phone\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">phone<\/a> object that includes the <code>number<\/code> and <code>type<\/code> set to <span translate=\"no\"><strong>mobile<\/strong><\/span>, or the <a href=\"https:\/\/docs.adyen.com\/api-explorer\/balanceplatform\/latest\/post\/paymentInstruments#request-card-authentication-email\" class=\"codeLabel external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">email<\/a>.<\/p>\n<p>Here is an example of how you can create a card with authentication data (mobile phone number) for wallets.<\/p>\n<div data-component-wrapper=\"code-sample\">\n    <code-sample :title=\"'Create a card with authentication data for wallet activation'\" :id=\"'create-card-wallet-activation'\" :code-data=\"[{&quot;language&quot;:&quot;bash&quot;,&quot;tabTitle&quot;:&quot;curl&quot;,&quot;content&quot;:&quot;curl https:\\\/\\\/balanceplatform-api-test.adyen.com\\\/bcl\\\/v2\\\/paymentInstruments \\\\\\n-H 'x-api-key: ADYEN_BALANCE_PLATFORM_API_KEY' \\\\\\n-H 'content-type: application\\\/json' \\\\\\n-X POST \\\\\\n-d '{\\n    \\&quot;type\\&quot;: \\&quot;card\\&quot;,\\n    \\&quot;issuingCountryCode\\&quot;: \\&quot;NL\\&quot;,\\n    \\&quot;balanceAccountId\\&quot;: \\&quot;BA00000000000000000000001\\&quot;,\\n    \\&quot;status\\&quot;: \\&quot;inactive\\&quot;,\\n    \\&quot;card\\&quot;: {\\n        \\&quot;formFactor\\&quot;: \\&quot;physical\\&quot;,\\n        \\&quot;brand\\&quot;: \\&quot;mc\\&quot;,\\n        \\&quot;brandVariant\\&quot;: \\&quot;mcdebit\\&quot;,\\n        \\&quot;cardholderName\\&quot;: \\&quot;Sam Hopper\\&quot;,\\n        \\&quot;authentication\\&quot;: {\\n        \\&quot;phone\\&quot;:\\n            {\\n                \\&quot;number\\&quot;: \\&quot;31611223344\\&quot;,\\n                \\&quot;type\\&quot;: \\&quot;mobile\\&quot;\\n            }\\n    },\\n    \\&quot;deliveryContact\\&quot;: {\\n        \\&quot;address\\&quot;: {\\n            \\&quot;city\\&quot;: \\&quot;Amsterdam\\&quot;,\\n            \\&quot;country\\&quot;: \\&quot;NL\\&quot;,\\n            \\&quot;stateOrProvince\\&quot;: \\&quot;NH\\&quot;,\\n            \\&quot;street\\&quot;: \\&quot;Simon Carmiggeltstraat\\&quot;,\\n            \\&quot;houseNumberOrName\\&quot;: \\&quot;6-50\\&quot;,\\n            \\&quot;postalCode\\&quot;: \\&quot;1011DJ\\&quot;\\n        },\\n        \\&quot;name\\&quot;: {\\n            \\&quot;firstName\\&quot;: \\&quot;Sam\\&quot;,\\n            \\&quot;lastName\\&quot;: \\&quot;Hopper\\&quot;\\n        }\\n    },\\n    \\&quot;configuration\\&quot;: {\\n        \\&quot;configurationProfileId\\&quot;: \\&quot;YOUR_CONFIGURATION_PROFILE_ID\\&quot;\\n    }\\n  },\\n  \\&quot;description\\&quot;: \\&quot;YOUR_DESCRIPTION_OF_THE_PAYMENT_INSTRUMENT\\&quot;\\n}'&quot;},{&quot;language&quot;:&quot;java&quot;,&quot;tabTitle&quot;:&quot;Java&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Java API Library v40.1.0\\nimport com.adyen.Client;\\nimport com.adyen.enums.Environment;\\nimport com.adyen.model.balanceplatform.*;\\nimport java.time.OffsetDateTime;\\nimport java.util.*;\\nimport com.adyen.service.balancePlatform.*;\\n\\nClient client = new Client(\\&quot;ADYEN_BALANCE_PLATFORM_API_KEY\\&quot;, Environment.TEST);\\n\\n\\\/\\\/ Create the request object(s)\\nDeliveryAddress deliveryAddress = new DeliveryAddress()\\n  .country(\\&quot;NL\\&quot;)\\n  .stateOrProvince(\\&quot;NH\\&quot;)\\n  .city(\\&quot;Amsterdam\\&quot;)\\n  .postalCode(\\&quot;1011DJ\\&quot;);\\n\\nName name = new Name()\\n  .firstName(\\&quot;Sam\\&quot;)\\n  .lastName(\\&quot;Hopper\\&quot;);\\n\\nPhone phone = new Phone()\\n  .number(\\&quot;31611223344\\&quot;)\\n  .type(Phone.TypeEnum.MOBILE);\\n\\nCardConfiguration cardConfiguration = new CardConfiguration()\\n  .configurationProfileId(\\&quot;YOUR_CONFIGURATION_PROFILE_ID\\&quot;);\\n\\nDeliveryContact deliveryContact = new DeliveryContact()\\n  .address(deliveryAddress)\\n  .name(name);\\n\\nAuthentication authentication = new Authentication()\\n  .phone(phone);\\n\\nCardInfo cardInfo = new CardInfo()\\n  .brandVariant(\\&quot;mcdebit\\&quot;)\\n  .configuration(cardConfiguration)\\n  .formFactor(CardInfo.FormFactorEnum.PHYSICAL)\\n  .cardholderName(\\&quot;Sam Hopper\\&quot;)\\n  .deliveryContact(deliveryContact)\\n  .brand(\\&quot;mc\\&quot;)\\n  .authentication(authentication);\\n\\nPaymentInstrumentInfo paymentInstrumentInfo = new PaymentInstrumentInfo()\\n  .balanceAccountId(\\&quot;BA00000000000000000000001\\&quot;)\\n  .description(\\&quot;YOUR_DESCRIPTION_OF_THE_PAYMENT_INSTRUMENT\\&quot;)\\n  .type(PaymentInstrumentInfo.TypeEnum.CARD)\\n  .issuingCountryCode(\\&quot;NL\\&quot;)\\n  .card(cardInfo)\\n  .status(PaymentInstrumentInfo.StatusEnum.INACTIVE);\\n\\n\\\/\\\/ Send the request\\nPaymentInstrumentsApi service = new PaymentInstrumentsApi(client);\\nPaymentInstrument response = service.createPaymentInstrument(paymentInstrumentInfo, null);&quot;},{&quot;language&quot;:&quot;php&quot;,&quot;tabTitle&quot;:&quot;PHP&quot;,&quot;content&quot;:&quot;&lt;?php\\n\\\/\\\/ Adyen PHP API Library v28.3.0\\nuse Adyen\\\\Client;\\nuse Adyen\\\\Environment;\\nuse Adyen\\\\Model\\\\BalancePlatform\\\\CardConfiguration;\\nuse Adyen\\\\Model\\\\BalancePlatform\\\\DeliveryContact;\\nuse Adyen\\\\Model\\\\BalancePlatform\\\\Authentication;\\nuse Adyen\\\\Model\\\\BalancePlatform\\\\DeliveryAddress;\\nuse Adyen\\\\Model\\\\BalancePlatform\\\\Name;\\nuse Adyen\\\\Model\\\\BalancePlatform\\\\Phone;\\nuse Adyen\\\\Model\\\\BalancePlatform\\\\CardInfo;\\nuse Adyen\\\\Model\\\\BalancePlatform\\\\PaymentInstrumentInfo;\\nuse Adyen\\\\Service\\\\BalancePlatform\\\\PaymentInstrumentsApi;\\n\\n$client = new Client();\\n$client-&gt;setXApiKey(\\&quot;ADYEN_BALANCE_PLATFORM_API_KEY\\&quot;);\\n$client-&gt;setEnvironment(Environment::TEST);\\n\\n\\n\\\/\\\/ Create the request object(s)\\n$deliveryAddress = new DeliveryAddress();\\n$deliveryAddress\\n  -&gt;setCountry(\\&quot;NL\\&quot;)\\n  -&gt;setStateOrProvince(\\&quot;NH\\&quot;)\\n  -&gt;setCity(\\&quot;Amsterdam\\&quot;)\\n  -&gt;setPostalCode(\\&quot;1011DJ\\&quot;);\\n\\n$name = new Name();\\n$name\\n  -&gt;setFirstName(\\&quot;Sam\\&quot;)\\n  -&gt;setLastName(\\&quot;Hopper\\&quot;);\\n\\n$phone = new Phone();\\n$phone\\n  -&gt;setNumber(\\&quot;31611223344\\&quot;)\\n  -&gt;setType(\\&quot;mobile\\&quot;);\\n\\n$cardConfiguration = new CardConfiguration();\\n$cardConfiguration\\n  -&gt;setConfigurationProfileId(\\&quot;YOUR_CONFIGURATION_PROFILE_ID\\&quot;);\\n\\n$deliveryContact = new DeliveryContact();\\n$deliveryContact\\n  -&gt;setAddress($deliveryAddress)\\n  -&gt;setName($name);\\n\\n$authentication = new Authentication();\\n$authentication\\n  -&gt;setPhone($phone);\\n\\n$cardInfo = new CardInfo();\\n$cardInfo\\n  -&gt;setBrandVariant(\\&quot;mcdebit\\&quot;)\\n  -&gt;setConfiguration($cardConfiguration)\\n  -&gt;setFormFactor(\\&quot;physical\\&quot;)\\n  -&gt;setCardholderName(\\&quot;Sam Hopper\\&quot;)\\n  -&gt;setDeliveryContact($deliveryContact)\\n  -&gt;setBrand(\\&quot;mc\\&quot;)\\n  -&gt;setAuthentication($authentication);\\n\\n$paymentInstrumentInfo = new PaymentInstrumentInfo();\\n$paymentInstrumentInfo\\n  -&gt;setBalanceAccountId(\\&quot;BA00000000000000000000001\\&quot;)\\n  -&gt;setDescription(\\&quot;YOUR_DESCRIPTION_OF_THE_PAYMENT_INSTRUMENT\\&quot;)\\n  -&gt;setType(\\&quot;card\\&quot;)\\n  -&gt;setIssuingCountryCode(\\&quot;NL\\&quot;)\\n  -&gt;setCard($cardInfo)\\n  -&gt;setStatus(\\&quot;inactive\\&quot;);\\n\\n\\\/\\\/ Send the request\\n$service = new PaymentInstrumentsApi($client);\\n$response = $service-&gt;createPaymentInstrument($paymentInstrumentInfo);&quot;},{&quot;language&quot;:&quot;cs&quot;,&quot;tabTitle&quot;:&quot;C#&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen .net API Library v33.0.0\\nusing Adyen;\\nusing Environment = Adyen.Model.Environment;\\nusing Adyen.Model;\\nusing Adyen.Model.BalancePlatform;\\nusing Adyen.Service.BalancePlatform;\\n\\nvar config = new Config()\\n{\\n    XApiKey = \\&quot;ADYEN_BALANCE_PLATFORM_API_KEY\\&quot;,\\n    Environment = Environment.Test\\n};\\nvar client = new Client(config);\\n\\n\\\/\\\/ Create the request object(s)\\nDeliveryAddress deliveryAddress = new DeliveryAddress\\n{\\n  Country = \\&quot;NL\\&quot;,\\n  StateOrProvince = \\&quot;NH\\&quot;,\\n  City = \\&quot;Amsterdam\\&quot;,\\n  PostalCode = \\&quot;1011DJ\\&quot;\\n};\\n\\nName name = new Name\\n{\\n  FirstName = \\&quot;Sam\\&quot;,\\n  LastName = \\&quot;Hopper\\&quot;\\n};\\n\\nPhone phone = new Phone\\n{\\n  Number = \\&quot;31611223344\\&quot;,\\n  Type = Phone.TypeEnum.Mobile\\n};\\n\\nCardConfiguration cardConfiguration = new CardConfiguration\\n{\\n  ConfigurationProfileId = \\&quot;YOUR_CONFIGURATION_PROFILE_ID\\&quot;\\n};\\n\\nDeliveryContact deliveryContact = new DeliveryContact\\n{\\n  Address = deliveryAddress,\\n  Name = name\\n};\\n\\nAuthentication authentication = new Authentication\\n{\\n  Phone = phone\\n};\\n\\nCardInfo cardInfo = new CardInfo\\n{\\n  BrandVariant = \\&quot;mcdebit\\&quot;,\\n  Configuration = cardConfiguration,\\n  FormFactor = CardInfo.FormFactorEnum.Physical,\\n  CardholderName = \\&quot;Sam Hopper\\&quot;,\\n  DeliveryContact = deliveryContact,\\n  Brand = \\&quot;mc\\&quot;,\\n  Authentication = authentication\\n};\\n\\nPaymentInstrumentInfo paymentInstrumentInfo = new PaymentInstrumentInfo\\n{\\n  BalanceAccountId = \\&quot;BA00000000000000000000001\\&quot;,\\n  Description = \\&quot;YOUR_DESCRIPTION_OF_THE_PAYMENT_INSTRUMENT\\&quot;,\\n  Type = PaymentInstrumentInfo.TypeEnum.Card,\\n  IssuingCountryCode = \\&quot;NL\\&quot;,\\n  Card = cardInfo,\\n  Status = PaymentInstrumentInfo.StatusEnum.Inactive\\n};\\n\\n\\\/\\\/ Send the request\\nvar service = new PaymentInstrumentsService(client);\\nvar response = service.CreatePaymentInstrument(paymentInstrumentInfo);&quot;},{&quot;language&quot;:&quot;js&quot;,&quot;tabTitle&quot;:&quot;NodeJS (JavaScript)&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Node API Library v30.0.2\\nconst { Client, BalancePlatformAPI } = require('@adyen\\\/api-library');\\n\\nconst config = new Config({\\n  apiKey: \\&quot;ADYEN_BALANCE_PLATFORM_API_KEY\\&quot;,\\n  environment: EnvironmentEnum.TEST\\n});\\n\\nconst client = new Client(config);\\n\\n\\\/\\\/ Create the request object(s)\\nconst paymentInstrumentInfo = {\\n  type: \\&quot;card\\&quot;,\\n  issuingCountryCode: \\&quot;NL\\&quot;,\\n  balanceAccountId: \\&quot;BA00000000000000000000001\\&quot;,\\n  status: \\&quot;inactive\\&quot;,\\n  card: {\\n    formFactor: \\&quot;physical\\&quot;,\\n    brand: \\&quot;mc\\&quot;,\\n    brandVariant: \\&quot;mcdebit\\&quot;,\\n    cardholderName: \\&quot;Sam Hopper\\&quot;,\\n    authentication: {\\n      phone: {\\n        number: \\&quot;31611223344\\&quot;,\\n        type: \\&quot;mobile\\&quot;\\n      }\\n    },\\n    deliveryContact: {\\n      address: {\\n        city: \\&quot;Amsterdam\\&quot;,\\n        country: \\&quot;NL\\&quot;,\\n        stateOrProvince: \\&quot;NH\\&quot;,\\n        street: \\&quot;Simon Carmiggeltstraat\\&quot;,\\n        houseNumberOrName: \\&quot;6-50\\&quot;,\\n        postalCode: \\&quot;1011DJ\\&quot;\\n      },\\n      name: {\\n        firstName: \\&quot;Sam\\&quot;,\\n        lastName: \\&quot;Hopper\\&quot;\\n      }\\n    },\\n    configuration: {\\n      configurationProfileId: \\&quot;YOUR_CONFIGURATION_PROFILE_ID\\&quot;\\n    }\\n  },\\n  description: \\&quot;YOUR_DESCRIPTION_OF_THE_PAYMENT_INSTRUMENT\\&quot;\\n}\\n\\n\\\/\\\/ Send the request\\nconst balancePlatformAPI = new BalancePlatformAPI(client);\\nconst response = balancePlatformAPI.PaymentInstrumentsApi.createPaymentInstrument(paymentInstrumentInfo);&quot;},{&quot;language&quot;:&quot;go&quot;,&quot;tabTitle&quot;:&quot;Go&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Go API Library v21.1.0\\nimport (\\n  \\&quot;context\\&quot;\\n  \\&quot;github.com\\\/adyen\\\/adyen-go-api-library\\\/v21\\\/src\\\/common\\&quot;\\n  \\&quot;github.com\\\/adyen\\\/adyen-go-api-library\\\/v21\\\/src\\\/adyen\\&quot;\\n  \\&quot;github.com\\\/adyen\\\/adyen-go-api-library\\\/v21\\\/src\\\/balancePlatform\\&quot;\\n)\\nclient := adyen.NewClient(&amp;common.Config{\\n  ApiKey:      \\&quot;ADYEN_BALANCE_PLATFORM_API_KEY\\&quot;,\\n  Environment: common.TestEnv,\\n})\\n\\n\\\/\\\/ Create the request object(s)\\ndeliveryAddress := balancePlatform.DeliveryAddress{\\n  Country: \\&quot;NL\\&quot;,\\n  StateOrProvince: common.PtrString(\\&quot;NH\\&quot;),\\n  City: common.PtrString(\\&quot;Amsterdam\\&quot;),\\n  PostalCode: common.PtrString(\\&quot;1011DJ\\&quot;),\\n}\\n\\nname := balancePlatform.Name{\\n  FirstName: \\&quot;Sam\\&quot;,\\n  LastName: \\&quot;Hopper\\&quot;,\\n}\\n\\nphone := balancePlatform.Phone{\\n  Number: \\&quot;31611223344\\&quot;,\\n  Type: \\&quot;mobile\\&quot;,\\n}\\n\\ncardConfiguration := balancePlatform.CardConfiguration{\\n  ConfigurationProfileId: \\&quot;YOUR_CONFIGURATION_PROFILE_ID\\&quot;,\\n}\\n\\ndeliveryContact := balancePlatform.DeliveryContact{\\n  Address: deliveryAddress,\\n  Name: name,\\n}\\n\\nauthentication := balancePlatform.Authentication{\\n  Phone: &amp;phone,\\n}\\n\\ncardInfo := balancePlatform.CardInfo{\\n  BrandVariant: \\&quot;mcdebit\\&quot;,\\n  Configuration: &amp;cardConfiguration,\\n  FormFactor: \\&quot;physical\\&quot;,\\n  CardholderName: \\&quot;Sam Hopper\\&quot;,\\n  DeliveryContact: &amp;deliveryContact,\\n  Brand: \\&quot;mc\\&quot;,\\n  Authentication: &amp;authentication,\\n}\\n\\npaymentInstrumentInfo := balancePlatform.PaymentInstrumentInfo{\\n  BalanceAccountId: \\&quot;BA00000000000000000000001\\&quot;,\\n  Description: common.PtrString(\\&quot;YOUR_DESCRIPTION_OF_THE_PAYMENT_INSTRUMENT\\&quot;),\\n  Type: \\&quot;card\\&quot;,\\n  IssuingCountryCode: \\&quot;NL\\&quot;,\\n  Card: &amp;cardInfo,\\n  Status: common.PtrString(\\&quot;inactive\\&quot;),\\n}\\n\\n\\\/\\\/ Send the request\\nservice := client.BalancePlatform()\\nreq := service.PaymentInstrumentsApi.CreatePaymentInstrumentInput().PaymentInstrumentInfo(paymentInstrumentInfo)\\nres, httpRes, err := service.PaymentInstrumentsApi.CreatePaymentInstrument(context.Background(), req)&quot;},{&quot;language&quot;:&quot;py&quot;,&quot;tabTitle&quot;:&quot;Python&quot;,&quot;content&quot;:&quot;# Adyen Python API Library v14.0.0\\nimport Adyen\\n\\nadyen = Adyen.Adyen()\\nadyen.client.xapikey = \\&quot;ADYEN_BALANCE_PLATFORM_API_KEY\\&quot;\\nadyen.client.platform = \\&quot;test\\&quot; # The environment to use library in.\\n\\n# Create the request object(s)\\njson_request = {\\n  \\&quot;type\\&quot;: \\&quot;card\\&quot;,\\n  \\&quot;issuingCountryCode\\&quot;: \\&quot;NL\\&quot;,\\n  \\&quot;balanceAccountId\\&quot;: \\&quot;BA00000000000000000000001\\&quot;,\\n  \\&quot;status\\&quot;: \\&quot;inactive\\&quot;,\\n  \\&quot;card\\&quot;: {\\n    \\&quot;formFactor\\&quot;: \\&quot;physical\\&quot;,\\n    \\&quot;brand\\&quot;: \\&quot;mc\\&quot;,\\n    \\&quot;brandVariant\\&quot;: \\&quot;mcdebit\\&quot;,\\n    \\&quot;cardholderName\\&quot;: \\&quot;Sam Hopper\\&quot;,\\n    \\&quot;authentication\\&quot;: {\\n      \\&quot;phone\\&quot;: {\\n        \\&quot;number\\&quot;: \\&quot;31611223344\\&quot;,\\n        \\&quot;type\\&quot;: \\&quot;mobile\\&quot;\\n      }\\n    },\\n    \\&quot;deliveryContact\\&quot;: {\\n      \\&quot;address\\&quot;: {\\n        \\&quot;city\\&quot;: \\&quot;Amsterdam\\&quot;,\\n        \\&quot;country\\&quot;: \\&quot;NL\\&quot;,\\n        \\&quot;stateOrProvince\\&quot;: \\&quot;NH\\&quot;,\\n        \\&quot;street\\&quot;: \\&quot;Simon Carmiggeltstraat\\&quot;,\\n        \\&quot;houseNumberOrName\\&quot;: \\&quot;6-50\\&quot;,\\n        \\&quot;postalCode\\&quot;: \\&quot;1011DJ\\&quot;\\n      },\\n      \\&quot;name\\&quot;: {\\n        \\&quot;firstName\\&quot;: \\&quot;Sam\\&quot;,\\n        \\&quot;lastName\\&quot;: \\&quot;Hopper\\&quot;\\n      }\\n    },\\n    \\&quot;configuration\\&quot;: {\\n      \\&quot;configurationProfileId\\&quot;: \\&quot;YOUR_CONFIGURATION_PROFILE_ID\\&quot;\\n    }\\n  },\\n  \\&quot;description\\&quot;: \\&quot;YOUR_DESCRIPTION_OF_THE_PAYMENT_INSTRUMENT\\&quot;\\n}\\n\\n# Send the request\\nresult = adyen.balancePlatform.payment_instruments_api.create_payment_instrument(request=json_request)&quot;},{&quot;language&quot;:&quot;rb&quot;,&quot;tabTitle&quot;:&quot;Ruby&quot;,&quot;content&quot;:&quot;# Adyen Ruby API Library v11.1.0\\nrequire \\&quot;adyen-ruby-api-library\\&quot;\\n\\nadyen = Adyen::Client.new\\nadyen.api_key = 'ADYEN_BALANCE_PLATFORM_API_KEY'\\nadyen.env = :test # Set to \\&quot;live\\&quot; for live environment\\n\\n# Create the request object(s)\\nrequest_body = {\\n  :type =&gt; 'card',\\n  :issuingCountryCode =&gt; 'NL',\\n  :balanceAccountId =&gt; 'BA00000000000000000000001',\\n  :status =&gt; 'inactive',\\n  :card =&gt; {\\n    :formFactor =&gt; 'physical',\\n    :brand =&gt; 'mc',\\n    :brandVariant =&gt; 'mcdebit',\\n    :cardholderName =&gt; 'Sam Hopper',\\n    :authentication =&gt; {\\n      :phone =&gt; {\\n        :number =&gt; '31611223344',\\n        :type =&gt; 'mobile'\\n      }\\n    },\\n    :deliveryContact =&gt; {\\n      :address =&gt; {\\n        :city =&gt; 'Amsterdam',\\n        :country =&gt; 'NL',\\n        :stateOrProvince =&gt; 'NH',\\n        :street =&gt; 'Simon Carmiggeltstraat',\\n        :houseNumberOrName =&gt; '6-50',\\n        :postalCode =&gt; '1011DJ'\\n      },\\n      :name =&gt; {\\n        :firstName =&gt; 'Sam',\\n        :lastName =&gt; 'Hopper'\\n      }\\n    },\\n    :configuration =&gt; {\\n      :configurationProfileId =&gt; 'YOUR_CONFIGURATION_PROFILE_ID'\\n    }\\n  },\\n  :description =&gt; 'YOUR_DESCRIPTION_OF_THE_PAYMENT_INSTRUMENT'\\n}\\n\\n# Send the request\\nresult = adyen.balancePlatform.payment_instruments_api.create_payment_instrument(request_body)&quot;},{&quot;language&quot;:&quot;ts&quot;,&quot;tabTitle&quot;:&quot;NodeJS (TypeScript)&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Node API Library v30.0.2\\nimport { Client, BalancePlatformAPI, Types } from \\&quot;@adyen\\\/api-library\\&quot;;\\n\\nconst config = new Config({\\n  apiKey: \\&quot;ADYEN_BALANCE_PLATFORM_API_KEY\\&quot;,\\n  environment: EnvironmentEnum.TEST\\n});\\n\\nconst client = new Client(config);\\n\\n\\\/\\\/ Create the request object(s)\\nconst deliveryAddress: Types.balancePlatform.DeliveryAddress = {\\n  country: \\&quot;NL\\&quot;,\\n  stateOrProvince: \\&quot;NH\\&quot;,\\n  city: \\&quot;Amsterdam\\&quot;,\\n  postalCode: \\&quot;1011DJ\\&quot;\\n};\\n\\nconst name: Types.balancePlatform.Name = {\\n  firstName: \\&quot;Sam\\&quot;,\\n  lastName: \\&quot;Hopper\\&quot;\\n};\\n\\nconst phone: Types.balancePlatform.Phone = {\\n  number: \\&quot;31611223344\\&quot;,\\n  type: Types.balancePlatform.Phone.TypeEnum.Mobile\\n};\\n\\nconst cardConfiguration: Types.balancePlatform.CardConfiguration = {\\n  configurationProfileId: \\&quot;YOUR_CONFIGURATION_PROFILE_ID\\&quot;\\n};\\n\\nconst deliveryContact: Types.balancePlatform.DeliveryContact = {\\n  address: deliveryAddress,\\n  name: name\\n};\\n\\nconst authentication: Types.balancePlatform.Authentication = {\\n  phone: phone\\n};\\n\\nconst cardInfo: Types.balancePlatform.CardInfo = {\\n  brandVariant: \\&quot;mcdebit\\&quot;,\\n  configuration: cardConfiguration,\\n  formFactor: Types.balancePlatform.CardInfo.FormFactorEnum.Physical,\\n  cardholderName: \\&quot;Sam Hopper\\&quot;,\\n  deliveryContact: deliveryContact,\\n  brand: \\&quot;mc\\&quot;,\\n  authentication: authentication\\n};\\n\\nconst paymentInstrumentInfo: Types.balancePlatform.PaymentInstrumentInfo = {\\n  balanceAccountId: \\&quot;BA00000000000000000000001\\&quot;,\\n  description: \\&quot;YOUR_DESCRIPTION_OF_THE_PAYMENT_INSTRUMENT\\&quot;,\\n  type: Types.balancePlatform.PaymentInstrumentInfo.TypeEnum.Card,\\n  issuingCountryCode: \\&quot;NL\\&quot;,\\n  card: cardInfo,\\n  status: Types.balancePlatform.PaymentInstrumentInfo.StatusEnum.Inactive\\n};\\n\\n\\\/\\\/ Send the request\\nconst balancePlatformAPI = new BalancePlatformAPI(client);\\nconst response = balancePlatformAPI.PaymentInstrumentsApi.createPaymentInstrument(paymentInstrumentInfo);&quot;}]\" :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<p>You can also add the  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/balanceplatform\/latest\/post\/paymentInstruments#request-card-authentication\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">authentication<\/a> object at a later time or change the card user's phone number by sending a PATCH <a href=\"https:\/\/docs.adyen.com\/api-explorer\/#\/balanceplatform\/latest\/patch\/paymentInstruments\/{id}\" class=\"codeLabel external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/paymentInstruments\/{id}<\/a> request to update the card.<\/p>\n<div data-component-wrapper=\"code-sample\">\n    <code-sample :title=\"'Add or change authentication data of existing card'\" :id=\"'add-auth-data-existing'\" :code-data=\"[{&quot;language&quot;:&quot;bash&quot;,&quot;tabTitle&quot;:&quot;curl&quot;,&quot;content&quot;:&quot;curl https:\\\/\\\/balanceplatform-api-test.adyen.com\\\/bcl\\\/v2\\\/paymentInstruments\\\/PI00000000000000000000001 \\\\\\n-H 'x-api-key: ADYEN_BALANCE_PLATFORM_API_KEY' \\\\\\n-H 'content-type: application\\\/json' \\\\\\n-X PATCH \\\\\\n-d '{\\n    \\&quot;card\\&quot;: {\\n        \\&quot;authentication\\&quot;: {\\n            \\&quot;phone\\&quot;: {\\n                \\&quot;number\\&quot;: \\&quot;31611223344\\&quot;,\\n                \\&quot;type\\&quot;: \\&quot;mobile\\&quot;\\n            }\\n        }\\n    }\\n}'&quot;},{&quot;language&quot;:&quot;java&quot;,&quot;tabTitle&quot;:&quot;Java&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Java API Library v40.1.0\\nimport com.adyen.Client;\\nimport com.adyen.enums.Environment;\\nimport com.adyen.model.balanceplatform.*;\\nimport java.time.OffsetDateTime;\\nimport java.util.*;\\nimport com.adyen.service.balancePlatform.*;\\n\\nClient client = new Client(\\&quot;ADYEN_BALANCE_PLATFORM_API_KEY\\&quot;, Environment.TEST);\\n\\n\\\/\\\/ Create the request object(s)\\nPhone phone = new Phone()\\n  .number(\\&quot;31611223344\\&quot;)\\n  .type(Phone.TypeEnum.MOBILE);\\n\\nAuthentication authentication = new Authentication()\\n  .phone(phone);\\n\\nCardInfo cardInfo = new CardInfo()\\n  .authentication(authentication);\\n\\nPaymentInstrumentUpdateRequest paymentInstrumentUpdateRequest = new PaymentInstrumentUpdateRequest()\\n  .card(cardInfo);\\n\\n\\\/\\\/ Send the request\\nPaymentInstrumentsApi service = new PaymentInstrumentsApi(client);\\nUpdatePaymentInstrument response = service.updatePaymentInstrument(\\&quot;id\\&quot;, paymentInstrumentUpdateRequest, null);&quot;},{&quot;language&quot;:&quot;php&quot;,&quot;tabTitle&quot;:&quot;PHP&quot;,&quot;content&quot;:&quot;&lt;?php\\n\\\/\\\/ Adyen PHP API Library v28.3.0\\nuse Adyen\\\\Client;\\nuse Adyen\\\\Environment;\\nuse Adyen\\\\Model\\\\BalancePlatform\\\\Phone;\\nuse Adyen\\\\Model\\\\BalancePlatform\\\\Authentication;\\nuse Adyen\\\\Model\\\\BalancePlatform\\\\CardInfo;\\nuse Adyen\\\\Model\\\\BalancePlatform\\\\PaymentInstrumentUpdateRequest;\\nuse Adyen\\\\Service\\\\BalancePlatform\\\\PaymentInstrumentsApi;\\n\\n$client = new Client();\\n$client-&gt;setXApiKey(\\&quot;ADYEN_BALANCE_PLATFORM_API_KEY\\&quot;);\\n$client-&gt;setEnvironment(Environment::TEST);\\n\\n\\n\\\/\\\/ Create the request object(s)\\n$phone = new Phone();\\n$phone\\n  -&gt;setNumber(\\&quot;31611223344\\&quot;)\\n  -&gt;setType(\\&quot;mobile\\&quot;);\\n\\n$authentication = new Authentication();\\n$authentication\\n  -&gt;setPhone($phone);\\n\\n$cardInfo = new CardInfo();\\n$cardInfo\\n  -&gt;setAuthentication($authentication);\\n\\n$paymentInstrumentUpdateRequest = new PaymentInstrumentUpdateRequest();\\n$paymentInstrumentUpdateRequest\\n  -&gt;setCard($cardInfo);\\n\\n\\\/\\\/ Send the request\\n$service = new PaymentInstrumentsApi($client);\\n$response = $service-&gt;updatePaymentInstrument('id', $paymentInstrumentUpdateRequest);&quot;},{&quot;language&quot;:&quot;cs&quot;,&quot;tabTitle&quot;:&quot;C#&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen .net API Library v33.0.0\\nusing Adyen;\\nusing Environment = Adyen.Model.Environment;\\nusing Adyen.Model;\\nusing Adyen.Model.BalancePlatform;\\nusing Adyen.Service.BalancePlatform;\\n\\nvar config = new Config()\\n{\\n    XApiKey = \\&quot;ADYEN_BALANCE_PLATFORM_API_KEY\\&quot;,\\n    Environment = Environment.Test\\n};\\nvar client = new Client(config);\\n\\n\\\/\\\/ Create the request object(s)\\nPhone phone = new Phone\\n{\\n  Number = \\&quot;31611223344\\&quot;,\\n  Type = Phone.TypeEnum.Mobile\\n};\\n\\nAuthentication authentication = new Authentication\\n{\\n  Phone = phone\\n};\\n\\nCardInfo cardInfo = new CardInfo\\n{\\n  Authentication = authentication\\n};\\n\\nPaymentInstrumentUpdateRequest paymentInstrumentUpdateRequest = new PaymentInstrumentUpdateRequest\\n{\\n  Card = cardInfo\\n};\\n\\n\\\/\\\/ Send the request\\nvar service = new PaymentInstrumentsService(client);\\nvar response = service.UpdatePaymentInstrument(\\&quot;id\\&quot;, paymentInstrumentUpdateRequest);&quot;},{&quot;language&quot;:&quot;js&quot;,&quot;tabTitle&quot;:&quot;NodeJS (JavaScript)&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Node API Library v30.0.2\\nconst { Client, BalancePlatformAPI } = require('@adyen\\\/api-library');\\n\\nconst config = new Config({\\n  apiKey: \\&quot;ADYEN_BALANCE_PLATFORM_API_KEY\\&quot;,\\n  environment: EnvironmentEnum.TEST\\n});\\n\\nconst client = new Client(config);\\n\\n\\\/\\\/ Create the request object(s)\\nconst paymentInstrumentUpdateRequest = {\\n  card: {\\n    authentication: {\\n      phone: {\\n        number: \\&quot;31611223344\\&quot;,\\n        type: \\&quot;mobile\\&quot;\\n      }\\n    }\\n  }\\n}\\n\\n\\\/\\\/ Send the request\\nconst balancePlatformAPI = new BalancePlatformAPI(client);\\nconst response = balancePlatformAPI.PaymentInstrumentsApi.updatePaymentInstrument(\\&quot;id\\&quot;, paymentInstrumentUpdateRequest);&quot;},{&quot;language&quot;:&quot;go&quot;,&quot;tabTitle&quot;:&quot;Go&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Go API Library v21.1.0\\nimport (\\n  \\&quot;context\\&quot;\\n  \\&quot;github.com\\\/adyen\\\/adyen-go-api-library\\\/v21\\\/src\\\/common\\&quot;\\n  \\&quot;github.com\\\/adyen\\\/adyen-go-api-library\\\/v21\\\/src\\\/adyen\\&quot;\\n  \\&quot;github.com\\\/adyen\\\/adyen-go-api-library\\\/v21\\\/src\\\/balancePlatform\\&quot;\\n)\\nclient := adyen.NewClient(&amp;common.Config{\\n  ApiKey:      \\&quot;ADYEN_BALANCE_PLATFORM_API_KEY\\&quot;,\\n  Environment: common.TestEnv,\\n})\\n\\n\\\/\\\/ Create the request object(s)\\nphone := balancePlatform.Phone{\\n  Number: \\&quot;31611223344\\&quot;,\\n  Type: \\&quot;mobile\\&quot;,\\n}\\n\\nauthentication := balancePlatform.Authentication{\\n  Phone: &amp;phone,\\n}\\n\\ncardInfo := balancePlatform.CardInfo{\\n  Authentication: &amp;authentication,\\n}\\n\\npaymentInstrumentUpdateRequest := balancePlatform.PaymentInstrumentUpdateRequest{\\n  Card: &amp;cardInfo,\\n}\\n\\n\\\/\\\/ Send the request\\nservice := client.BalancePlatform()\\nreq := service.PaymentInstrumentsApi.UpdatePaymentInstrumentInput(\\&quot;id\\&quot;).PaymentInstrumentUpdateRequest(paymentInstrumentUpdateRequest)\\nres, httpRes, err := service.PaymentInstrumentsApi.UpdatePaymentInstrument(context.Background(), req)&quot;},{&quot;language&quot;:&quot;py&quot;,&quot;tabTitle&quot;:&quot;Python&quot;,&quot;content&quot;:&quot;# Adyen Python API Library v14.0.0\\nimport Adyen\\n\\nadyen = Adyen.Adyen()\\nadyen.client.xapikey = \\&quot;ADYEN_BALANCE_PLATFORM_API_KEY\\&quot;\\nadyen.client.platform = \\&quot;test\\&quot; # The environment to use library in.\\n\\n# Create the request object(s)\\njson_request = {\\n  \\&quot;card\\&quot;: {\\n    \\&quot;authentication\\&quot;: {\\n      \\&quot;phone\\&quot;: {\\n        \\&quot;number\\&quot;: \\&quot;31611223344\\&quot;,\\n        \\&quot;type\\&quot;: \\&quot;mobile\\&quot;\\n      }\\n    }\\n  }\\n}\\n\\n# Send the request\\nresult = adyen.balancePlatform.payment_instruments_api.update_payment_instrument(request=json_request, id=\\&quot;id\\&quot;)&quot;},{&quot;language&quot;:&quot;rb&quot;,&quot;tabTitle&quot;:&quot;Ruby&quot;,&quot;content&quot;:&quot;# Adyen Ruby API Library v11.1.0\\nrequire \\&quot;adyen-ruby-api-library\\&quot;\\n\\nadyen = Adyen::Client.new\\nadyen.api_key = 'ADYEN_BALANCE_PLATFORM_API_KEY'\\nadyen.env = :test # Set to \\&quot;live\\&quot; for live environment\\n\\n# Create the request object(s)\\nrequest_body = {\\n  :card =&gt; {\\n    :authentication =&gt; {\\n      :phone =&gt; {\\n        :number =&gt; '31611223344',\\n        :type =&gt; 'mobile'\\n      }\\n    }\\n  }\\n}\\n\\n# Send the request\\nresult = adyen.balancePlatform.payment_instruments_api.update_payment_instrument(request_body, 'id')&quot;},{&quot;language&quot;:&quot;ts&quot;,&quot;tabTitle&quot;:&quot;NodeJS (TypeScript)&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Node API Library v30.0.2\\nimport { Client, BalancePlatformAPI, Types } from \\&quot;@adyen\\\/api-library\\&quot;;\\n\\nconst config = new Config({\\n  apiKey: \\&quot;ADYEN_BALANCE_PLATFORM_API_KEY\\&quot;,\\n  environment: EnvironmentEnum.TEST\\n});\\n\\nconst client = new Client(config);\\n\\n\\\/\\\/ Create the request object(s)\\nconst phone: Types.balancePlatform.Phone = {\\n  number: \\&quot;31611223344\\&quot;,\\n  type: Types.balancePlatform.Phone.TypeEnum.Mobile\\n};\\n\\nconst authentication: Types.balancePlatform.Authentication = {\\n  phone: phone\\n};\\n\\nconst cardInfo: Types.balancePlatform.CardInfo = {\\n  authentication: authentication\\n};\\n\\nconst paymentInstrumentUpdateRequest: Types.balancePlatform.PaymentInstrumentUpdateRequest = {\\n  card: cardInfo\\n};\\n\\n\\\/\\\/ Send the request\\nconst balancePlatformAPI = new BalancePlatformAPI(client);\\nconst response = balancePlatformAPI.PaymentInstrumentsApi.updatePaymentInstrument(\\&quot;id\\&quot;, paymentInstrumentUpdateRequest);&quot;}]\" :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>","url":"https:\/\/docs.adyen.com\/pt\/issuing\/tokens-digital-wallet\/authentication-data","articleFields":{"description":"Learn how to enable an Adyen-issued card ","feedback_component":true,"last_edit_on":"17-03-2023 15:14","filters_component":false,"parameters":{"directoryPath":"\/issuing"}},"algolia":{"url":"https:\/\/docs.adyen.com\/pt\/issuing\/tokens-digital-wallet\/authentication-data","title":"Allow a card to use network tokens for digital wallets","content":"Adding cards to a digital wallet, such as Google Pay or Apple Pay, is a convenient way to make transactions with Adyen-issued cards. However, before your cardholder can start using digital wallets, Adyen needs to authenticate them.\nTo support this scenario, you must include the cardholder's authentication data when issuing a card.\nHow it works\nTo allow your cardholders to add their cards to a digital wallet, you must link their mobile phone number, email, or both to their card. You can link this contact information to their card when you create or update the card.\nWhen your cardholder adds a card to a wallet, Adyen sends a one-time password (OTP) to their phone number or email. If you have linked both contact options to the card, the wallet prompts the cardholder to select their preferred option for the OTP. Adyen then sends the OTP to the selected option.\nAfter the OTP is successfully validated, their card is added to the wallet.\nFor a list of supported digital wallets, reach out to your Adyen contact.\nSend authentication data\nWhen creating or updating the card, include the  authentication object containing a  phone object that includes the number and type set to mobile, or the email.\nHere is an example of how you can create a card with authentication data (mobile phone number) for wallets.\n\n    \n\nYou can also add the  authentication object at a later time or change the card user's phone number by sending a PATCH \/paymentInstruments\/{id} request to update the card.\n\n    \n","type":"page","locale":"pt","boost":17,"hierarchy":{"lvl0":"Home","lvl1":"Adyen Issuing","lvl2":"Network tokens for digital wallets","lvl3":"Allow a card to use network tokens for digital wallets"},"hierarchy_url":{"lvl0":"https:\/\/docs.adyen.com\/pt","lvl1":"https:\/\/docs.adyen.com\/pt\/issuing","lvl2":"https:\/\/docs.adyen.com\/pt\/issuing\/tokens-digital-wallet","lvl3":"\/pt\/issuing\/tokens-digital-wallet\/authentication-data"},"levels":4,"category":"Issuing","category_color":"green","tags":["Allow","network","tokens","digital","wallets"]},"articleFiles":{"add-auth-data-existing.js":"<p alt=\"\">add-auth-data-existing.js<\/p>","create-card-wallet-activation.js":"<p alt=\"\">create-card-wallet-activation.js<\/p>"}}
