> ## 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.8).
> The API is subject to change before the stable release.

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`](https://primer.io/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.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.