--- 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-05-24T12:54:31+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)