Search

Are you looking for test card numbers?

Would you like to contact support?

Developer-resource icon

Migrate to client key

Learn about how and why to switch to using the client key.

If your Web integration uses the origin key or your iOS or Android integration uses the client encryption public key, switch to the client key. In future versions the client key will be the only way to do client-side authentication. The client key makes it easier for you to manage the origins for your integration.

With the client key, you have:

  • A single key for all your allowed origins in an environment.
  • Flexibility to add and remove origins without having to generate a new client key.
  • A human-readable prefix, test or live, so you can easily tell which environment a client key is linked to.

The client key also enables card type detection through Bank Identification Number (BIN) lookup, which is not available when using the origin key.

Availability and compatibility

The client key is available for the following:

Integration Version
Web Drop-in and Components Available for 3.10.1 and later. Previous versions require origin keys for client-side authentication.
Starting 4.0.0 the client key is the only way to do client-side authentication.
iOS Drop-in and Components 3.7.0 and later.
Previous versions require client encryption public keys.
Starting 4.0.0 the client key is the only way to do client-side authentication.
Android Drop-in and Components 3.7.0 and later.
Previous versions require client encryption public keys.
Starting 4.0.0 the client key is the only way to do client-side authentication.

The client key is backwards compatible with the origin key and the public key. Generating a client key doesn't invalidate a pre-existing origin key or public key.

Switch to using the client key

To switch to using the client key, you must first generate your client key in your Customer Area:

  1. Log in to your Customer Area.
  2. Go to Developers > API credentials, and select the API credential for your integration, for example ws.
  3. Add your domains under Allowed origins. These are the domains from which you will be sending your client-side requests.
  4. Under Authentication, select Generate New Client Key.
  5. Select Save at the bottom of the page.

Once you have your client key, you need to add it to your integration. Choose your platform:

You must be running Web Drop-in or Web Components version 3.10.1 or above.

Replace originKey in your Web Drop-in or Web Components configuration object with:

Web Components
  const configuration = {
      ...
      clientKey: "YOUR_CLIENT_KEY",
      ...
  }

You must be running iOS Drop-in or iOS Components version 3.7.0 or above.

  1. Create an instance of APIContext with the following parameters:

    Parameter name Required Description
    clientKey -white_check_mark- Your client key.
    environment -white_check_mark- Use test. When you're ready to accept live payments, change the value to one of our live environments

    APIContext initialization
    // When you're ready to go live, change environment to Environment.live
    // You can also use other environment values described in https://adyen.github.io/adyen-ios/Docs/Structs/Environment.html
    let apiContext = APIContext(environment: Environment.test, clientKey: clientKey)
  2. Use apiContext in your iOS Drop-in or iOS Components configuration instead of publicKey:

    iOS Drop-in
      let configuration = DropInComponent.Configuration(apiContext: apiContext)
      let component = DropInComponent(paymentMethods: paymentMethods, configuration: configuration)
    iOS Components
      // Replace CardComponent with the payment method Component that you want to add.
      let cardComponent = CardComponent(paymentMethod: cardPaymentMethod, apiContext: apiContext)

You must be running Android Drop-in or Android Components version 3.7.0 or above.

Pass your clientKey to your Android Drop-in or Android Components configuration object:

Android Drop-in
val dropInConfiguration = DropInConfiguration.Builder(context, YourDropInService::class.java, "YOUR_CLIENT_KEY")
  // ...
  .build()
Android Components
val cardConfiguration = CardConfiguration.Builder(context, "YOUR_CLIENT_KEY")
  // ...
  .build()

See also