> ## Documentation Index
> Fetch the complete documentation index at: https://doc-test-my.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Payment Methods

> Integrate different payment methods in Razorpay Android Custom SDK Checkout.

The Razorpay Android Custom SDK lets you integrate the supported payment methods on your Android app's Checkout form.

## Fetch Payment Methods

Use the [Fetch Payment Methods API](/docs/payments/payment-gateway/android-integration/custom/build-integration#1-4-fetch-payment-methods) to fetch the payment methods available for your account.

Below are the sample payloads for each payment method.

There are no specific request parameters to be passed. Instead, you must pass the `fetchVirtualAccount` method for your Customer Identifier to get created and the details to appear on the checkout. Know more about [integrating bank transfer with Custom Checkout](https://razorpay.com/docs/payments/payment-methods/bank-transfer/custom-integration).

## Debit and Credit Card

For Card payments, `method` should be specified as `card`. Other required fields:

* `card[name]`
* `card[number]`
* `card[cvv]`
* `card[expiry_month]`
* `card[expiry_year]`

#### Sample Code

The sample code shown below allows the checkout to accept a card payment of ₹299.35.

<CodeGroup>
  ```java Java theme={null}
  JSONObject data = new JSONObject();
  data.put("amount", 29935);
  data.put("currency", "MYR");
  data.put("order_id", "order_DgZ26rHjbzLLY2");//sample order_id. Generate orders using Orders API
  data.put("email", "<email>");
  data.put("contact", "<phone>");
  data.put("method", "card");
  data.put("card[name]", "<name>");
  data.put("card[number]", "<cardNumber>");
  data.put("card[expiry_month]", "12");
  data.put("card[expiry_year]", "30");
  data.put("card[cvv]", "100");
  ```

  ```kotlin Kotlin theme={null}
  val data = JSONObject()
  data.put("amount", 29935)
  data.put("amount", "MYR")
  data.put("order_id", "order_DgZ26rHjbzLLY2") //sample order_id. Generate orders using Orders API
  data.put("email", "<email>")
  data.put("contact", "<phone>")
  data.put("method", "card")
  data.put("card[name]", "<name>")
  data.put("card[number]", "<cardNumber>")
  data.put("card[expiry_month]", "12")
  data.put("card[expiry_year]", "30")
  data.put("card[cvv]", "100")
  ```
</CodeGroup>

## Wallet

For Wallet payments, `method` should be specified as `wallet`.

#### Sample Code

The sample code shown below allows the checkout to perform a wallet transaction for a payment of ₹299.35 :

<CodeGroup>
  ```java Java theme={null}
  JSONObject data = new JSONObject();
  data.put("amount", 29935);
  data.put("currency", "MYR");
  data.put("order_id", "order_DgZ26rHjbzLLY2");//sample order_id. Generate orders using Orders API
  data.put("email", "siti.aisyah@example.com");
  data.put("contact", "+6026901126");
  data.put("method", "wallet");
  data.put("wallet", "grabpay");
  ```

  ```kotlin Kotlin theme={null}
  val data = JSONObject()
  data.put("amount", 29935)
  data.put("amount", "MYR")
  data.put("order_id", "order_DgZ26rHjbzLLY2") //sample order_id. Generate orders using Orders API
  data.put("email", "siti.aisyah@example.com")
  data.put("contact", "+6026901126")
  data.put("method", "wallet")
  data.put("wallet", "grabpay")
  ```
</CodeGroup>

Check the list [Wallets supported by Razorpay](https://razorpay.com/docs/payments/payment-methods/wallets#supported-wallets).
