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

# PrimerPaymentMethodsController

> Controller interface for accessing and selecting available payment methods

> [!WARNING]
>
> Primer Checkout Android SDK is currently in **beta** (v3.0.0-beta.8).
> The API is subject to change before the stable release.

Controller interface for the payment method list. Exposes available methods as observable state and provides selection.

## Creation

```kotlin theme={"dark"}
@Composable
fun rememberPaymentMethodsController(
    checkout: PrimerCheckoutController,
): PrimerPaymentMethodsController
```

| Parameter | Type | Description |
| - | - | - |
| `checkout` | `PrimerCheckoutController` | Checkout controller from `rememberPrimerCheckoutController()` |

> [!NOTE]
>
> Must be called inside `PrimerCheckoutHost` content or a `PrimerCheckoutSheet` slot.

## Property

| Property | Type | Description |
| - | - | - |
| `methods` | `StateFlow<List<PrimerPaymentMethod>>` | Available payment methods for the current session. Updates on `checkout.refresh()`. |

## Method

| Method | Description |
| - | - |
| `select(method: PrimerPaymentMethod)` | Selects a payment method to begin its payment flow (card form, redirect, native wallet, etc.) |

## PrimerPaymentMethod

```kotlin theme={"dark"}
data class PrimerPaymentMethod(
    val paymentMethodType: String,
    val paymentMethodName: String?,
    val surcharge: Surcharge?,
    val supportedPrimerSessionIntents: List<PrimerSessionIntent>,
    val paymentMethodManagerCategories: List<PrimerPaymentMethodManagerCategory>,
)
```

| Property | Type | Description |
| - | - | - |
| `paymentMethodType` | `String` | Payment method identifier (e.g., `"PAYMENT_CARD"`, `"PAYPAL"`, `"GOOGLE_PAY"`) |
| `paymentMethodName` | `String?` | Human-readable display name |
| `surcharge` | `Surcharge?` | Surcharge amount, or `null` if none |
| `supportedPrimerSessionIntents` | `List<PrimerSessionIntent>` | Session intents supported by this payment method |
| `paymentMethodManagerCategories` | `List<PrimerPaymentMethodManagerCategory>` | Manager categories for this payment method |

### Common payment method types

| Type | Description |
| - | - |
| `"PAYMENT_CARD"` | Credit/debit card |
| `"PAYPAL"` | PayPal |
| `"GOOGLE_PAY"` | Google Pay |
| `"KLARNA"` | Klarna |
| `"APPLE_PAY"` | Apple Pay |
| `"IDEAL"` | iDEAL |
| `"BANCONTACT"` | Bancontact |
| `"SOFORT"` | Sofort/Klarna Pay Now |


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