> ## Documentation Index
> Fetch the complete documentation index at: https://primer.io/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# PrimerPaymentMethods

> Composable component that renders the available payment methods list with customizable slots

<Warning>
  Primer Checkout Android SDK is currently in **beta** (v3.0.0-beta.4).
  The API is subject to change before the stable release.
</Warning>

Composable that renders available payment methods with customizable header and item slots. Handles surcharge grouping automatically.

## Signature

```kotlin theme={"dark"}
@Composable
fun PrimerPaymentMethods(
    controller: PrimerPaymentMethodsController,
    modifier: Modifier = Modifier,
    header: @Composable () -> Unit = { PaymentMethodsDefaults.SectionHeader() },
    method: @Composable (PrimerPaymentMethod, () -> Unit) -> Unit = { paymentMethod, onClick ->
        PaymentMethodsDefaults.Method(paymentMethod, onClick)
    },
)
```

## Parameters

| Parameter    | Type                                                                                                                 | Default                                  | Description                                                                   |
| ------------ | -------------------------------------------------------------------------------------------------------------------- | ---------------------------------------- | ----------------------------------------------------------------------------- |
| `controller` | [`PrimerPaymentMethodsController`](/docs/sdk/android-checkout/v3.0.0-beta/api/payment-methods/payment-methods-controller) | Required                                 | Controller providing available payment methods                                |
| `modifier`   | `Modifier`                                                                                                           | `Modifier`                               | Modifier applied to the root container                                        |
| `header`     | `@Composable () -> Unit`                                                                                             | `PaymentMethodsDefaults.SectionHeader()` | Slot for section header above the list                                        |
| `method`     | `@Composable (PrimerPaymentMethod, () -> Unit) -> Unit`                                                              | `PaymentMethodsDefaults.Method(...)`     | Slot for each payment method item. Receives method data and onClick callback. |

## Default behavior

Renders a "Pay with" header, a vertical list of methods with icon, name, and optional surcharge, and groups methods by surcharge amount. Shows `PaymentMethodsDefaults.EmptyState()` when no methods are available.
