---
title: "BLIK Android Drop-in"
description: "Add BLIK to an existing Android Drop-in integration."
url: "https://docs.adyen.com/payment-methods/blik/android-drop-in"
source_url: "https://docs.adyen.com/payment-methods/blik/android-drop-in.md"
canonical: "https://docs.adyen.com/payment-methods/blik/android-drop-in"
last_modified: "2026-06-01T15:33:15+02:00"
language: "en"
---

# BLIK Android Drop-in

Add BLIK to an existing Android Drop-in integration.

[View source](/payment-methods/blik/android-drop-in.md)

**If you are using Android Drop-in v5.0.0 or later:**

This payment method requires no additional configuration.

Follow the [Drop-in integration guide](/online-payments/build-your-integration/sessions-flow?platform=Android\&integration=Drop-in).

Our [Android Drop-in](/online-payments/build-your-integration/sessions-flow?platform=Android\&integration=Drop-in) renders BLIK in your payment form, and redirects the shopper to complete the payment. As with other redirect payment methods, you need to [check the payment result](#check-the-payment-result) after the shopper returns to your app.

## Requirements

| Requirement          | Description                                                                                                                                                                                                                                                                                                      |
| -------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Integration type** | Make sure that you have built your [Drop-in integration](/online-payments/build-your-integration/sessions-flow?platform=iOS\&integration=Components%2F%3Ftarget%3D_blank). BLIK for Android requires at least v3.8.0 of Drop-in. For more information, refer to [Release notes](/online-payments/release-notes). |
| **Setup steps**      | Before you begin, [add BLIK in your test Customer Area](/payment-methods/add-payment-methods).                                                                                                                                                                                                                   |

## Show BLIK in your payment form

Drop-in uses the `countryCode` and the `amount.currency` from your [/paymentMethods](https://docs.adyen.com/api-explorer/Checkout/latest/post/paymentMethods) request to show the available payment methods to your shopper.

1. To show BLIK in your payment form, specify in your [/paymentMethods](https://docs.adyen.com/api-explorer/Checkout/latest/post/paymentMethods) request:

   * [countryCode](https://docs.adyen.com/api-explorer/Checkout/latest/post/paymentMethods): **PL**
   * [amount.currency](https://docs.adyen.com/api-explorer/Checkout/latest/post/paymentMethods#request-amount): **PLN**
   * [amount.value](https://docs.adyen.com/api-explorer/Checkout/latest/post/paymentMethods#request-amount): The value of the payment, in [minor units](/development-resources/currency-codes).

   When the shopper proceeds to pay, Drop-in returns the `paymentComponentData.paymentMethod`.

2. Pass the `paymentComponentData.paymentMethod` to your server.\
   These are the shopper details that you need to make the payment.

Adyen provides a logo for BLIK that you can use on your payment form. For more information, refer to [Downloading logos](/online-payments/build-your-integration/advanced-flow/?platform=Web\&integration=API%20only#downloading-logos).

## Make a payment

1. Pass the `paymentComponentData.paymentMethod` value to your server.

2. From your server, make a POST [/payments](https://docs.adyen.com/api-explorer/Checkout/latest/post/payments) request, specifying:

   * `paymentMethod`: The `paymentComponentData.paymentMethod` from your client app.
   * `returnURL`: The URL the shopper is redirected to after they complete the payment. This URL can have a maximum of 1024 characters. Get this URL from the Component in the `RedirectComponent.getReturnUrl(context)`.

   #### curl

   ```bash
   curl https://checkout-test.adyen.com/v68/payments \
   -H 'x-api-key: ADYEN_API_KEY' \
   -H 'content-type: application/json' \
   -d '{
     "merchantAccount":"ADYEN_MERCHANT_ACCOUNT",
     "reference":"YOUR_ORDER_NUMBER",
     "amount":{
         "currency":"PLN",
         "value":1000
     },
     "paymentMethod":{
         "type":"blik",
         "blikCode":"777987"
     },
     "countryCode":"PL"
   }'
   ```

   #### Java

   ```java
   // Adyen Java API Library v27.0.0
   import com.adyen.Client;
   import com.adyen.enums.Environment;
   import com.adyen.model.checkout.*;
   import java.time.OffsetDateTime;
   import java.util.*;
   import com.adyen.model.RequestOptions;
   import com.adyen.service.checkout.*;

   // For the live environment, additionally include your liveEndpointUrlPrefix.
   Client client = new Client("ADYEN_API_KEY", Environment.TEST);

   // Create the request object(s)
   Amount amount = new Amount()
     .currency("PLN")
     .value(1000L);

   BlikDetails blikDetails = new BlikDetails()
     .type(BlikDetails.TypeEnum.BLIK)
     .blikCode("777987");

   PaymentRequest paymentRequest = new PaymentRequest()
     .reference("YOUR_ORDER_NUMBER")
     .amount(amount)
     .merchantAccount("ADYEN_MERCHANT_ACCOUNT")
     .countryCode("PL")
     .paymentMethod(new CheckoutPaymentMethod(blikDetails));

   // Send the request
   PaymentsApi service = new PaymentsApi(client);
   PaymentResponse response = service.payments(paymentRequest, new RequestOptions().idempotencyKey("UUID"));
   ```

   #### PHP

   ```php
   // Adyen PHP API Library v19.0.0
   use Adyen\Client;
   use Adyen\Environment;
   use Adyen\Model\Checkout\Amount;
   use Adyen\Model\Checkout\CheckoutPaymentMethod;
   use Adyen\Model\Checkout\PaymentRequest;
   use Adyen\Service\Checkout\PaymentsApi;

   $client = new Client();
   $client->setXApiKey("ADYEN_API_KEY");
   // For the live environment, additionally include your liveEndpointUrlPrefix.
   $client->setEnvironment(Environment::TEST);


   // Create the request object(s)
   $amount = new Amount();
   $amount
     ->setCurrency("PLN")
     ->setValue(1000);

   $checkoutPaymentMethod = new CheckoutPaymentMethod();
   $checkoutPaymentMethod
     ->setType("blik")
     ->setBlikCode("777987");

   $paymentRequest = new PaymentRequest();
   $paymentRequest
     ->setReference("YOUR_ORDER_NUMBER")
     ->setAmount($amount)
     ->setMerchantAccount("ADYEN_MERCHANT_ACCOUNT")
     ->setCountryCode("PL")
     ->setPaymentMethod($checkoutPaymentMethod);

   $requestOptions['idempotencyKey'] = 'UUID';

   // Send the request
   $service = new PaymentsApi($client);
   $response = $service->payments($paymentRequest, $requestOptions);
   ```

   #### C\#

   ```cs
   // Adyen .net API Library v17.0.0
   using Adyen;
   using Environment = Adyen.Model.Environment;
   using Adyen.Model;
   using Adyen.Model.Checkout;
   using Adyen.Service.Checkout;

   // For the live environment, additionally include your liveEndpointUrlPrefix.
   var config = new Config()
   {
       XApiKey = "ADYEN_API_KEY",
       Environment = Environment.Test
   };
   var client = new Client(config);

   // Create the request object(s)
   Amount amount = new Amount
   {
     Currency = "PLN",
     Value = 1000
   };

   BlikDetails blikDetails = new BlikDetails
   {
     Type = BlikDetails.TypeEnum.Blik,
     BlikCode = "777987"
   };

   PaymentRequest paymentRequest = new PaymentRequest
   {
     Reference = "YOUR_ORDER_NUMBER",
     Amount = amount,
     MerchantAccount = "ADYEN_MERCHANT_ACCOUNT",
     CountryCode = "PL",
     PaymentMethod = new CheckoutPaymentMethod(blikDetails)
   };

   // Send the request
   var service = new PaymentsService(client);
   var response = service.Payments(paymentRequest, requestOptions: new RequestOptions { IdempotencyKey = "UUID"});
   ```

   #### NodeJS (JavaScript)

   ```js
   // Adyen Node API Library v18.0.0
   // Require the parts of the module you want to use
   const { Client, CheckoutAPI } = require('@adyen/api-library');
   // Initialize the client object
   // For the live environment, additionally include your liveEndpointUrlPrefix.
   const client = new Client({apiKey: "ADYEN_API_KEY", environment: "TEST"});

   // Create the request object(s)
   const paymentRequest = {
     merchantAccount: "ADYEN_MERCHANT_ACCOUNT",
     reference: "YOUR_ORDER_NUMBER",
     amount: {
       currency: "PLN",
       value: 1000
     },
     paymentMethod: {
       type: "blik",
       blikCode: "777987"
     },
     countryCode: "PL"
   }

   // Send the request
   const checkoutAPI = new CheckoutAPI(client);
   const response = checkoutAPI.PaymentsApi.payments(paymentRequest, { idempotencyKey: "UUID" });
   ```

   #### Go

   ```go
   // Adyen Go API Library v10.4.0
   import (
     "context"
     "github.com/adyen/adyen-go-api-library/v9/src/common"
     "github.com/adyen/adyen-go-api-library/v9/src/adyen"
     "github.com/adyen/adyen-go-api-library/v9/src/checkout"
   )
   // For the live environment, additionally include your liveEndpointUrlPrefix.
   client := adyen.NewClient(&common.Config{
     ApiKey:      "ADYEN_API_KEY",
     Environment: common.TestEnv,
   })

   // Create the request object(s)
   amount := checkout.Amount{
     Currency: "PLN",
     Value: 1000,
   }

   blikDetails := checkout.BlikDetails{
     Type: common.PtrString("blik"),
     BlikCode: common.PtrString("777987"),
   }

   paymentRequest := checkout.PaymentRequest{
     Reference: "YOUR_ORDER_NUMBER",
     Amount: amount,
     MerchantAccount: "ADYEN_MERCHANT_ACCOUNT",
     CountryCode: common.PtrString("PL"),
     PaymentMethod: checkout.BlikDetailsAsCheckoutPaymentMethod(&blikDetails),
   }

   // Send the request
   service := client.Checkout()
   req := service.PaymentsApi.PaymentsInput().IdempotencyKey("UUID").PaymentRequest(paymentRequest)
   res, httpRes, err := service.PaymentsApi.Payments(context.Background(), req)
   ```

   #### Python

   ```py
   # Adyen Python API Library v12.5.1
   import Adyen

   adyen = Adyen.Adyen()
   adyen.client.xapikey = "ADYEN_API_KEY"
   # For the live environment, additionally include your liveEndpointUrlPrefix.
   adyen.client.platform = "test" # The environment to use library in.

   # Create the request object(s)
   json_request = {
     "merchantAccount": "ADYEN_MERCHANT_ACCOUNT",
     "reference": "YOUR_ORDER_NUMBER",
     "amount": {
       "currency": "PLN",
       "value": 1000
     },
     "paymentMethod": {
       "type": "blik",
       "blikCode": "777987"
     },
     "countryCode": "PL"
   }

   # Send the request
   result = adyen.checkout.payments_api.payments(request=json_request, idempotency_key="UUID")
   ```

   #### Ruby

   ```rb
   # Adyen Ruby API Library v9.1.0
   require "adyen-ruby-api-library"

   adyen = Adyen::Client.new
   adyen.api_key = 'YOUR_X_API_KEY'
   adyen.env = :test # Set to "live" for live environment

   request_body = {
     :merchantAccount => 'YOUR_MERCHANT_ACCOUNT',
     :reference => 'YOUR_ORDER_NUMBER',
     :amount => {
       :currency => 'PLN',
       :value => 1000
     },
     :paymentMethod => {
       :type => 'blik',
       :blikCode => '777987'
     },
     :countryCode => 'PL'
   }

   result = adyen.checkout.payments_api.payments(request_body, headers: { 'Idempotency-Key' => 'UUID' })
   ```

   #### NodeJS (TypeScript)

   ```ts
   // Adyen Node API Library v18.0.0
   // Require the parts of the module you want to use
   import { Client, CheckoutAPI, Types } from "@adyen/api-library";
   // Initialize the client object
   // For the live environment, additionally include your liveEndpointUrlPrefix.
   const client = new Client({apiKey: "ADYEN_API_KEY", environment: "TEST"});

   // Create the request object(s)
   const amount: Types.checkout.Amount = {
     currency: "PLN",
     value: 1000
   };

   const blikDetails: Types.checkout.BlikDetails = {
     type: Types.checkout.BlikDetails.TypeEnum.Blik,
     blikCode: "777987"
   };

   const paymentRequest: Types.checkout.PaymentRequest = {
     reference: "YOUR_ORDER_NUMBER",
     amount: amount,
     merchantAccount: "ADYEN_MERCHANT_ACCOUNT",
     countryCode: "PL",
     paymentMethod: blikDetails
   };

   // Send the request
   const checkoutAPI = new CheckoutAPI(client);
   const response = checkoutAPI.PaymentsApi.payments(paymentRequest, { idempotencyKey: "UUID" });
   ```

   The [/payments](https://docs.adyen.com/api-explorer/Checkout/latest/post/payments) response contains:

   * `action`: Object containing information about the redirect.

   **/payments response**

   ```json
   {
      "resultCode":"RedirectShopper",
      "action":{
         "paymentData":"Ab02b4c0!BQABAgCSZT7t...",
         "paymentMethodType":"blik",
         "url":"https://test.adyen.com/hpp/checkout.shtml?u=redirectPayPal&p=eJxtkt..",
         "method":"GET",
         "type":"redirect"
      },
      "details":[
         {
            "key":"payload",
            "type":"text"
         }
      ],
      ...
   }
   ```

3. Pass the `action` object to your client app.

## Check the payment result

Drop-in redirects the shopper to complete the payment. When the shopper returns back to your app, Drop-in provides the `actionComponentData` object.

From your server, make a POST [/payments/details](https://docs.adyen.com/api-explorer/Checkout/latest/post/payments/details) request providing:

* `details`: The `actionComponentData.details` object from Drop-in.

**/payments/details request**

```bash
curl https://checkout-test.adyen.com/v72/payments/details \
-H 'x-api-key: ADYEN_API_KEY' \
-H 'content-type: application/json' \
-d '{
     "details": {
       "redirectResult": "eyJ0cmFuc1N0YXR1cyI6IlkifQ=="
   }
}'
```

You receive a response containing:

* `resultCode`: Use this to present the payment result to your shopper.
* `pspReference`: Our unique identifier for the transaction.

**/payments/details response**

```json
{
     "resultCode": "Authorised",
     "pspReference": "PPKFQ89R6QRXGN82"
}
```

## Present the payment result

Use the `resultCode` from the [/payments/details](https://docs.adyen.com/api-explorer/Checkout/latest/post/payments/details) response to show the payment outcome on your frontend.

You will also receive the outcome of the payment asynchronously in a [webhook](/development-resources/webhooks).

The `resultCode` values you can receive for BLIK are:

| resultCode                  | Description                                                                                                                                         | Action to take                                                                                                                                                                                                                         |
| --------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Authorised**              | The payment was successful.                                                                                                                         | Inform the shopper that the payment has been successful. You will receive the funds in 2-3 days.                                                                                                                                       |
| **Error**                   | There was an error when the payment was being processed.                                                                                            | Inform the shopper that there was an error processing their payment. The response contains a `refusalReason`, indicating the cause of the error.                                                                                       |
| **Pending** or **Received** | The shopper has completed the payment but the final result is not yet known. It may take minutes or hours for the payments network to confirm this. | Inform the shopper that you have received their order, and are waiting for the payment to be completed. You will receive the final result of the payment in an [AUTHORISATION webhook](/development-resources/webhooks/webhook-types). |
| **Refused**                 | The payment was refused by the shopper's bank.                                                                                                      | Ask the shopper to try the payment again using a different payment method.                                                                                                                                                             |

The webhooks you can receive for BLIK are:

| eventCode         | success field | Description                                     | Action to take                                                                      |
| ----------------- | ------------- | ----------------------------------------------- | ----------------------------------------------------------------------------------- |
| **AUTHORISATION** | **false**     | The transaction failed.                         | Cancel the order and inform the shopper that the payment failed.                    |
| **AUTHORISATION** | **true**      | The shopper successfully completed the payment. | Inform the shopper that the payment has been successful and proceed with the order. |

## Test and go live

To test a BLIK with code payment:

* Use BLIK code 777213.
* Make sure your implementation satisfies BLIK’s guidelines.
* Test your integration end-to-end.

### Going live

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

## See also

* [Android Drop-in integration guide](/online-payments/build-your-integration/sessions-flow/?platform=Android\&integration=Drop-in)
* [Webhooks](/development-resources/webhooks)
* [API Explorer](https://docs.adyen.com/api-explorer/#/CheckoutService/latest/overview)
