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

# API Reference

> Complete API reference for the Primer Checkout Android SDK

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

## Core API

| Component                                                                                      | Description                                                                                                            |
| ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
| [`PrimerCheckoutController`](/docs/sdk/android-checkout/v3.0.0-beta/api/primer-checkout-controller) | Main checkout session controller with state observation and actions                                                    |
| [`PrimerCheckoutState`](/docs/sdk/android-checkout/v3.0.0-beta/api/primer-checkout-state)           | Unified checkout state — lifecycle (`Loading`, `Ready`), session updates, and terminal outcomes (`Success`, `Failure`) |
| [`Payment outcomes`](/docs/sdk/android-checkout/v3.0.0-beta/api/primer-checkout-event)              | How `Success` / `Failure` and `PrimerCheckoutData` are surfaced through `PrimerCheckoutState`                          |
| [`PrimerCheckoutSheet`](/docs/sdk/android-checkout/v3.0.0-beta/api/primer-checkout-sheet)           | Modal bottom sheet composable with built-in navigation and screen slots                                                |
| [`PrimerCheckoutHost`](/docs/sdk/android-checkout/v3.0.0-beta/api/primer-checkout-host)             | Inline host composable for embedding checkout components in your layout                                                |

## Card Form

| Component                                                                                          | Description                                                                       |
| -------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- |
| [`PrimerCardForm`](/docs/sdk/android-checkout/v3.0.0-beta/api/card-form/primer-card-form)               | Card payment form composable with slot-based layout                               |
| [`PrimerCardFormController`](/docs/sdk/android-checkout/v3.0.0-beta/api/card-form/card-form-controller) | Card form state holder with field data, validation, and submit action             |
| [`CardFormDefaults`](/docs/sdk/android-checkout/v3.0.0-beta/api/card-form/card-form-defaults)           | Pre-built field components for custom card form layouts                           |
| [Card Field Components](/docs/sdk/android-checkout/v3.0.0-beta/api/card-form/card-field-components)     | Individual field composables (`CardNumberField`, `ExpiryField`, `CvvField`, etc.) |

## Payment Methods

| Component                                                                                                                           | Description                                                            |
| ----------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------- |
| [`PrimerPaymentMethods`](/docs/sdk/android-checkout/v3.0.0-beta/api/payment-methods/primer-payment-methods)                              | Payment method list composable                                         |
| [`PrimerPaymentMethodsController`](/docs/sdk/android-checkout/v3.0.0-beta/api/payment-methods/payment-methods-controller)                | Payment methods state holder with available methods                    |
| [`PaymentMethodsDefaults`](/docs/sdk/android-checkout/v3.0.0-beta/api/payment-methods/payment-methods-defaults)                          | Pre-built sub-components for custom payment method layouts             |
| [`PrimerVaultedPaymentMethodsController`](/docs/sdk/android-checkout/v3.0.0-beta/api/payment-methods/vaulted-payment-methods-controller) | Saved payment methods state holder with select, delete, and management |

## Theming

| Component                                                                                                         | Description                                          |
| ----------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------- |
| [`PrimerTheme`](/docs/sdk/android-checkout/v3.0.0-beta/api/theming/primer-theme)                                       | Root theme container holding all design token groups |
| [`LightColorTokens` / `DarkColorTokens`](/docs/sdk/android-checkout/v3.0.0-beta/api/theming/color-tokens)              | Color tokens for light and dark mode                 |
| [`SpacingTokens`](/docs/sdk/android-checkout/v3.0.0-beta/api/theming/spacing-tokens)                                   | Spacing values for padding and margins               |
| [`TypographyTokens` / `TypographyStyle`](/docs/sdk/android-checkout/v3.0.0-beta/api/theming/typography-tokens)         | Font sizes, weights, and line heights                |
| [`RadiusTokens` / `BorderWidthTokens` / `SizeTokens`](/docs/sdk/android-checkout/v3.0.0-beta/api/theming/shape-tokens) | Corner radius, border widths, and component sizes    |

## Common Objects

| Component                                                                               | Description                                                     |
| --------------------------------------------------------------------------------------- | --------------------------------------------------------------- |
| [`PrimerSettings`](/docs/sdk/android-checkout/v3.0.0-beta/api/common/primer-settings)        | SDK configuration (payment handling mode, options)              |
| [`PrimerError`](/docs/sdk/android-checkout/v3.0.0-beta/api/common/primer-error)              | Error details with diagnostics ID and recovery suggestion       |
| [`Validation`](/docs/sdk/android-checkout/v3.0.0-beta/api/common/validation-result)          | Field validation result with error details                      |
| [`PrimerCardNetwork`](/docs/sdk/android-checkout/v3.0.0-beta/api/common/primer-card-network) | Card network type for co-badged card selection                  |
| [`PrimerCountry`](/docs/sdk/android-checkout/v3.0.0-beta/api/common/primer-country)          | Country data class and selection controller for billing address |

## Controller pattern

All stateful components follow the same `remember*` controller pattern:

```kotlin theme={"dark"}
val checkout = rememberPrimerCheckoutController(clientToken)
val cardFormController = rememberCardFormController(checkout)
val paymentMethodsController = rememberPaymentMethodsController(checkout)
val vaultedMethodsController = rememberVaultedPaymentMethodsController(checkout)
```

Each controller is created with a `remember*` composable function, exposes state via `StateFlow`, and provides action methods.
