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

# PayMe Drop-in integration

Add PayMe to an existing Drop-in integration.

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

Our [Android Drop-in](/online-payments/build-your-integration/sessions-flow?platform=Android\&integration=Drop-in) renders PayMe in your payment form, and redirects the shopper to the PayMe app to complete the payment.

PayMe is supported from Android Drop-in version 4.0.0.

## Requirements

| Requirement          | Description                                                                                                                                                                 |
| -------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Integration type** | Make sure that you have built an Advanced flow [Android Drop-in integration](/online-payments/build-your-integration/advanced-flow/?platform=Android\&integration=Drop-in). |
| **Setup steps**      | Before you begin, [add PayMe in your Customer Area](/payment-methods/add-payment-methods).                                                                                  |

## API reference

If you implemented an [additional use case](/online-payments/build-your-integration).

| Parameter name                                                                                                                           | Required | Description                                                                     |
| ---------------------------------------------------------------------------------------------------------------------------------------- | -------- | ------------------------------------------------------------------------------- |
| `channel`                                                                                                                                |          | To determine whether the shopper is using a desktop, laptop or mobile.          |
| [`lineItems.quantity`](https://docs.adyen.com/api-explorer/Checkout/latest/post/sessions#request-lineItems-quantity)                     |          | The number of items. Must be between 0 and 9999.                                |
| [`lineItems.sku`](https://docs.adyen.com/api-explorer/Checkout/latest/post/sessions#request-lineItems-sku)                               |          | The stock keeping unit. Maximum length 200 characters.                          |
| [`lineItems.description`](https://docs.adyen.com/api-explorer/Checkout/latest/post/sessions#request-lineItems-description)               |          | The order description to display to the shopper. Maximum length 200 characters. |
| [`lineItems.amountIncludingTax`](https://docs.adyen.com/api-explorer/Checkout/latest/post/sessions#request-lineItems-amountIncludingTax) |          | Item amount including the tax, in minor units. Must be between 1 and 100000000. |
| [`lineItems.itemCategory`](https://docs.adyen.com/api-explorer/Checkout/latest/post/sessions#request-lineItems-itemCategory)             |          | The item category. Maximum length 200 characters.                               |

**/payments request**

```kotlin
// SET YOUR ADYEN_API_KEY with the API key from the Customer Area.
const {Client, Config, CheckoutAPI} = require('@adyen/api-library');
const config = new Config();
// SET YOUR ADYEN_API_KEY with the API key from the Customer Area.
config.apiKey = '[API_KEY]';
config.merchantAccount = '[MERCHANT_ACCOUNT]';
const client = new Client({ config });
client.setEnvironment("TEST");
const checkout = new CheckoutAPI(client);
checkout.payments({
    "paymentMethod": {
      "type": "payme"
    },
    "amount": {
      "currency": "HKD",
      "value": 4200
    },
    "countryCode": "HK",
    "merchantAccount": "ADYEN_MERCHANT_ACCOUNT",
    "reference": "YOUR_ORDER_REFERENCE",
    "returnUrl": "https://your-company.example.com/...",
    "channel":"Android",
    "lineItems": [
      {
        "quantity": "1",
        "sku": "3232",
        "description": "Shoes",
        "amountIncludingTax": 4200,
        "itemCategory": "Fashion"
      }
    ]
  })
```

## Show PayMe in your payment form

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

* [countryCode](https://docs.adyen.com/api-explorer/Checkout/latest/post/paymentMethods): **HK**
* [amount.currency](https://docs.adyen.com/api-explorer/Checkout/latest/post/paymentMethods#request-amount): **HKD**

## Make a payment

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

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

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

   * `paymentMethod`: The `paymentComponentData.paymentMethod` from your client app.
   * `returnURL`: URL to where the shopper should be redirected back to after they complete the payment. Get this URL from the Component in the `RedirectComponent.getReturnUrl(context)`.

#### curl

```bash
curl https://checkout-test.adyen.com/v72/payments \
-H 'x-api-key: ADYEN_API_KEY' \
-H 'content-type: application/json' \
-d '{
    "paymentMethod": {
      "type": "payme"
    },
    "amount": {
      "currency": "HKD",
      "value": 4200
    },
    "countryCode": "HK",
    "merchantAccount": "ADYEN_MERCHANT_ACCOUNT",
    "reference": "YOUR_ORDER_REFERENCE",
    "returnUrl": "https://your-company.example.com/...",
    "channel":"Web",
    "lineItems": [
      {
        "quantity": "1",
        "sku": "3232",
        "description": "Shoes",
        "amountIncludingTax": 4200,
        "itemCategory": "Fashion"
      }
    ]
}'
```

#### NodeJS (JavaScript)

```js
// Set your X-API-KEY with the API key from the Customer Area.
const {Client, Config, CheckoutAPI} = require('@adyen/api-library');
const config = new Config();
// Set your X-API-KEY with the API key from the Customer Area.
config.apiKey = '[API_KEY]';
config.merchantAccount = '[MERCHANT_ACCOUNT]';
const client = new Client({ config });
client.setEnvironment("TEST");
const checkout = new CheckoutAPI(client);
checkout.payments({
    "paymentMethod": {
      "type": "payme"
    },
    "amount": {
      "currency": "HKD",
      "value": 4200
    },
    "countryCode": "HK",
    "merchantAccount": "YOUR_MERCHANT_ACCOUNT",
    "reference": "YOUR_ORDER_REFERENCE",
    "returnUrl": "https://your-company.example.com/...",
    "channel":"Web/iOS/Android",
    "lineItems": [
      {
        "quantity": "1",
        "sku": "3232",
        "description": "Shoes",
        "amountIncludingTax": 4200,
        "itemCategory": "Fashion"
      }
    ]
  })
```

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

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

  ```json
  {
  "resultCode": "RedirectShopper",
  "action": {
      "expiresAt": "2021-01-30T16:09:09Z",
      "paymentMethodType": "payme",
      "url": "https://qr.payme.hsbc.com.hk/...",
      "method": "GET",
      "type": "redirect"
      }
  }
  ```

If your integration is [set up correctly](/online-payments/build-your-integration/advanced-flow/?platform=Android\&integration=Drop-in#make-a-payment), the `action` object is passed from your server to the client.

1. Pass the `action` object to your client app. Drop-in needs this to redirect the shopper to the PayMe app.

See the [Android Drop-in integration guide](/online-payments/build-your-integration/sessions-flow?platform=Android\&integration=Drop-in) to get the payment outcome and show your shopper the result of the payment.

## Test and go live

Use the PayMe sandbox to test your integration. You do not need to use the PayMe app to test using the sandbox.

Use the amounts specified below to simulate different payment outcomes.

| Amount ending in | Result         | Description                                                                   |
| ---------------- | -------------- | ----------------------------------------------------------------------------- |
| 30 or 81         | Authorised     | Successful payment.                                                           |
| 77 or 90         | OfferCancelled | The payment request expired after PayMe's default expiry time of ten minutes. |
| 40 or 44         | Error          | There was an error when creating the payment request.                         |

## 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)
