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

# Checkout

> Configure which payment methods appear in checkout, set conditional display rules, and protect the card form against bots.

Control your checkout experience from **Dashboard → Checkout**. Define which payment methods appear, set their display order, and create conditional display rules—all without code changes. Updates apply immediately when you save.

## Payment Method Display

Configure which payment methods customers see at checkout:

| Setting           | Description                             |
| ----------------- | --------------------------------------- |
| **Visibility**    | Toggle payment methods on or off        |
| **Display order** | Drag to arrange payment method priority |

The preview panel shows exactly how checkout appears to customers in real time.

<Tip>
  PayNext automatically detects customer devices and only displays compatible payment methods. Digital wallets appear only on supported devices.
</Tip>

## Conditional Rules

Show or hide specific payment methods based on payment context. Select a payment method and click **Add condition** to open the condition builder.

### Available Conditions

| Condition             | Description                                               |
| --------------------- | --------------------------------------------------------- |
| **Country**           | Show payment method for customers in specific countries   |
| **Currency & amount** | Show based on currency, optionally with amount thresholds |
| **Metadata**          | Show based on custom metadata key-value pairs             |

### Combining Conditions

Conditions are combined with **AND** logic. A payment method displays only when all conditions are met.

**Example:** Show a payment method only for:

* Customers in US **AND**
* Payments in USD over \$50 **AND**
* Metadata key `customer_type` equals `vip`

## Getting Started

<Steps>
  <Step title="Open Checkout settings">
    Go to **Dashboard → Checkout**
  </Step>

  <Step title="Enable payment methods">
    Toggle on the payment methods you want to offer
  </Step>

  <Step title="Set display order">
    Drag payment methods to arrange their priority
  </Step>

  <Step title="Add conditions">
    Select a payment method and click **Add condition** to create display rules
  </Step>

  <Step title="Save">
    Click **Save** to apply your configuration
  </Step>
</Steps>

<Warning>
  Test checkout changes in Sandbox before enabling in Production.
</Warning>

## Bot Protection

PayNext can check visitors on the card entry form before a card payment is created. Most shoppers see nothing—a visible challenge appears only for visitors the check considers suspicious. This protects checkout against automated card testing.

Choose a mode in **Dashboard → Checkout → Bot protection**:

| Mode        | What happens                                                               |
| ----------- | -------------------------------------------------------------------------- |
| **Off**     | No check runs.                                                             |
| **Shadow**  | The check runs and is recorded, but a failed check never blocks a payment. |
| **Enforce** | A failed check blocks the payment before it reaches the processor.         |

<Tip>
  Start in Shadow to see how your traffic scores, then switch to Enforce.
</Tip>

### IP Allowlist

Automated tests cannot pass a bot check. Add the IP addresses your test runners use, and card payments from those addresses skip the check. Your integration needs no changes.

| Rule          | Detail                                                                |
| ------------- | --------------------------------------------------------------------- |
| **Addresses** | One IPv4 address per entry. IPv6 accepts a single address or a range. |
| **Expiry**    | Required. Up to one year, and defaults to 90 days.                    |
| **Limit**     | 20 entries per organization.                                          |
| **Access**    | Organization admins only.                                             |

Each entry takes an optional note and shows when it last matched, so you can tell which entries are still in use.

<Steps>
  <Step title="Open Checkout settings">
    Go to **Dashboard → Checkout** and find **Bot protection**
  </Step>

  <Step title="Add an address">
    Enter the IP address your tests run from, a note describing it, and an expiry date
  </Step>

  <Step title="Publish">
    Click **Publish** to apply the change
  </Step>
</Steps>

<Warning>
  Use IP addresses that only you control. Shared ranges from hosted CI providers cover every customer of that provider, so an entry for one exempts traffic that is not yours. Private and reserved addresses are rejected.
</Warning>

An expired entry stops working and stays in the list, so you can see what lapsed and remove it.

## SDK Customization

For advanced styling beyond dashboard settings, use SDK options:

* [Appearance](/sdk-reference/web-sdk/customization/appearance) — Colors, borders, spacing
* [Theme](/sdk-reference/web-sdk/customization/theme) — Light/dark mode
* [Text & Translations](/sdk-reference/web-sdk/customization/text-and-translations) — Labels, placeholders
* [Behavior](/sdk-reference/web-sdk/customization/behavior) — Validation, autofocus
