Payment-method icon

BLIK Android Component

Add BLIK to an existing Android Components integration.

If you are using Android Components v5.0.0 or later:

This payment method requires no additional configuration.

Follow the Components integration guide and use the following module and Component names:

On this page, you can find additional configuration for adding BLIK to your Components integration.

Before you begin

This page assumes you have already:

BLIK for Android requires at least v3.8.0 of Components. For more information, refer to Release notes.

Set up the BLIK Component

  1. Import the BLIK Component to your build.gradle file:
    implementation "com.adyen.checkout:blik:<latest-version>"

    For the latest version, refer to our GitHub.

  2. Build a client-side configuration of the BLIK Component:
    val blikConfiguration =
      BlikConfiguration.Builder(context, "YOUR_CLIENT_KEY")
      // When you're ready to accept live payments, change the value to one of our live environments.
      .setEnvironment(Environment.TEST)
      .build()
  3. Add the Component view to your layout:
    <com.adyen.checkout.blik.BlikView
      android:id="@+id/YOUR_COMPONENT_VIEW_ID"
      .../>

    You will attach the initialized component to this view when collecting payment details.

Collect payment details

Use the client-side Component to collect the phone number from your shopper.

  1. Deserialize the /paymentMethods response with the SERIALIZER object:
    val paymentMethodsApiResponse = PaymentMethodsApiResponse.SERIALIZER.deserialize(paymentMethodsResponse)
  2. From the result, get the object containing paymentMethods.type: blik.
  3. Initialize an instance of the Component. Call PROVIDER.get from the BLIK Component and pass the following:
    • The context (for example, this@YourActivity)
    • The PaymentMethod object (for example, paymentMethod)
    • The BlikConfiguration object:
      val blikComponent = BlikComponent.PROVIDER.get(this@YourActivity, paymentMethod, blikConfiguration)
  4. Attach the Component to the view to start getting your shopper's payment details. You need to call attach from the payment method's Component view and pass in:
    • the BlikComponent
    • the context (for example, this@YourActivity): BlikView.attach(blikComponent, this@YourActivity)
      You start receiving updates when the shopper enters their phone number.
  5. Check if isValid is true, and when the shopper proceeds to pay, pass the paymentComponentState.data.paymentMethod to your server:
    blikComponent.observe(this@MainActivity) { state ->
      if (state?.isValid == true) {
          //serialize data
          val paymentComponentData = PaymentComponentData.SERIALIZER.serialize(state.data)
          // When the shopper pays, pass the serialized `state.data` to your server to send a /payments request
      }
    }

Handle the await action

Step 1: Deserialize the action object

In your client-side app, deserialize the action object from the /payments response:

val action = Action.SERIALIZER.deserialize(paymentResponse.action)

Step 2: Initialize the Component

  1. Before initializing the Component, make sure that you've added the following to your build.gradle file:

    Check the latest version on GitHub.

  2. Create a configuration object for the Component, passing your client key:

  3. To initialize an instance of the Component, call PROVIDER.get from the Component and pass in the context (for example, this@YourActivity), application class, and the configuration object created in the previous step:

  4. From your instance, call handleAction and pass:

    • the context (for example, this@YourActivity)
    • the action object from the deserialized /payments response.

Step 3: Check the payment result

The Component notifies the observer with the actionComponentData object from the data in intent.data. Pass this to your server to make a /payments/details request.

Test and go live

You can test BLIK transactions in the test environment using any 6-digit number that starts with 777 as your blikCode.

You can test different refused payment result scenarios by using the following amounts in your /payments request:

Refusal reason Amount
ALIAS_DECLINED 288.00
TAS_DECLINED 192.00
USER_DECLINED 144.00
SEC_DECLINED 216.00
SYSTEM_ERROR 264.00
GENERAL_ERROR 360.00
INSUFFICIENT_FUNDS 120.00
TIMEOUT 312.00
LIMIT_EXCEEDED 96.00
USER_TIMEOUT 336.00
ISSUER_DECLINED 9.99

Check the status of BLIK test payments in your Customer Area > Transactions > Payments.

Before you can accept live BLIK payments, add BLIK in your live Customer Area.

See also