# Customization

Configure payment methods, transaction history, refund capabilities, and other settings for Terminal ready-made apps.

Configure standalone mode and the Stripe Terminal app using the Dashboard. On a reader, changes apply after you restart the device. In the Stripe Terminal app, they apply after you close and reopen the app.

These settings are shared between the Stripe Terminal app and standalone mode readers registered to the same location.

For more details on Terminal configurations, see [Terminal configurations](https://docs.stripe.com/terminal/fleet/configurations-overview.md).

Configure standalone mode and the Stripe Terminal app with the `standalone` hash on a Terminal [Configuration](https://docs.stripe.com/api/terminal/configuration.md) object (preview access required). Shared fields apply to both the Stripe Terminal app and standalone mode readers registered to the same Location. Fields marked “standalone mode only” don’t apply to the Stripe Terminal app. Fields:

- `enabled` (boolean): Turn standalone mode on for the Configuration.
- `payment_settings.currency` (string): Default currency, such as `usd`.
- `payment_settings.payment_method_types` (array): Accepted methods, such as `card_present`.
- `payment_settings.capture_method` (string): `automatic_async` (default) or `manual_preferred`.
- `payment_settings.incremental_authorization_supported` (boolean): Requires `capture_method` to be `manual_preferred`.
- `payment_settings.extended_authorization_supported` (boolean): Requires `capture_method` to be `manual_preferred`.
- `payment_settings.on_behalf_of` (string): Standalone mode only (the Stripe Terminal app doesn’t support Connect). For Connect, the connected account to set as merchant of record.
- `payment_settings.transfer_data.destination` (string): Standalone mode only. For Connect destination charges, the transfer destination.
- `reader_security.transaction_history.availability` (string): `enabled` (default) or `disabled`.
- `reader_security.transaction_history.scope` (string): `location` (default), `all_in_person`, or `all`.
- `reader_security.refunds.availability` (string): Standalone mode only. `enabled` (default), `enabled_with_passcode`, or `disabled`. In the Stripe Terminal app, restrict refunds with the Terminal Operator role instead.
- `reader_security.refunds.passcode` (string): Standalone mode only. Required when `availability` is `enabled_with_passcode`.

On-reader tipping is standalone mode only; it isn’t supported in the Stripe Terminal app.

## Update a configuration

#### Dashboard

1. From the [Terminal Locations](https://dashboard.stripe.com/terminal/locations) page, click **Manage locations**.
2. On the [Manage locations](https://dashboard.stripe.com/terminal/locations/manage) page, find the location you want to change.
3. In the overflow menu (⋯), click **Add configuration** or **Edit configuration**.
4. Use the filter to select **Standalone mode** or **Stripe Terminal app**.
5. Customize as needed.
6. Click **Done**.
7. Click **Apply changes**.

## Payment settings

### Accepted payment methods

Standalone mode and the Stripe Terminal app support [Terminal-supported card brands](https://docs.stripe.com/terminal/payments/collect-card-payment/supported-card-brands.md#payment-method-availability) and [additional payment methods](https://docs.stripe.com/terminal/payments/additional-payment-methods.md), such as [Affirm](https://docs.stripe.com/terminal/payments/additional-payment-methods.md#affirm), [WeChat Pay](https://docs.stripe.com/terminal/payments/additional-payment-methods.md#wechat-pay), and [PayNow](https://docs.stripe.com/terminal/payments/additional-payment-methods.md#paynow).

Some payment methods require activation in the [Stripe Dashboard](https://dashboard.stripe.com/settings/payment_methods) before you can use them.

When multiple non-card payment methods are enabled, the payment flow displays a **More ways to pay** button. If only one additional payment method is enabled, the payment flow displays it directly. Payment method availability depends on the transaction amount and the country of the location. For example, Affirm only appears when the payment amount falls within its supported range.

#### Dashboard

In the configuration, select the payment methods under **Payment methods and currency** to customize which payment methods you accept.

### Capture method

Configure how payments are captured. The capture method determines when funds are collected from the customer’s payment method.

- **`automatic_async`** (default): Stripe automatically captures the payment shortly after authorization. Use this for standard transactions where you don’t need to adjust the amount after the customer pays.
- **`manual_preferred`**: The payment is authorized but not immediately captured for supported payment methods. If a payment method doesn’t support manual capture, it’ll be automatically captured. You must explicitly [capture](https://docs.stripe.com/api/payment_intents/capture.md) the payment later using the API or Dashboard. Use this when you need to adjust the final amount after authorization, such as with incremental or extended authorizations.

#### Dashboard

In the configuration, select the capture method under **Capture method**.

### Incremental and extended authorization

If you select `manual_preferred` under [Capture method](https://docs.stripe.com/terminal/payments/ready-made-apps/customization.md#capture-method), you can optionally choose to [increment](https://docs.stripe.com/terminal/features/incremental-authorizations.md) or [extend](https://docs.stripe.com/terminal/features/extended-authorizations.md) an authorization.

> Incremental authorization requires using the API—you can’t increment a payment from the Dashboard, the reader, or the Stripe Terminal app. After the payment is incremented, or if you’re only using extended authorization, you can capture the payment from the Dashboard or using the API.

#### Dashboard

In the configuration, enable **Incremental authorization** or **Extended authorization** under **Authorization settings**.

To capture a payment after it has been incremented or extended:

1. Go to the [Payments](https://dashboard.stripe.com/payments) page in the Dashboard.
2. Find the uncaptured payment and click on it to open the payment details.
3. Click **Capture**.

## Transaction history and refunds

### Transaction history

Transaction history lets you view past transactions and initiate refunds directly on the device. You can control the scope of visible transactions.

- **`enabled`** (default): Displays transaction history on the device.
- **`disabled`**: Transaction history isn’t available on the device.

When enabled, you can set the scope of visible transactions:

- **`location`** (default): Transactions processed at the same Location are visible.
- **`all_in_person`**: All in-person transactions for the account are visible.
- **`all`**: All transactions for the account are visible, including online transactions. Recommended for unified commerce cases where you want to allow customers to buy online and return in store.

Transaction history lists transactions from the past 7 days. When you search, it returns matching transactions within the configured scope, regardless of date. Search matches the beginning of an internal note, so a transaction appears only when your search term is at the start of its note. For example, searching for “first” returns a note of “First” but not “No First”.

#### Dashboard

In the configuration, enable **Transaction history** and select the scope of visible transactions.

### Refunds

In the Stripe Terminal app, you restrict refunds with the Terminal Operator role instead of a passcode. Add a user with the Terminal Operator role to prevent them from creating refunds in the app or accessing the Stripe Dashboard. The passcode options described here apply to standalone mode on a reader.

Enable refunds on the reader to allow initiating refunds directly from the transaction history. You can optionally require a passcode to authorize refunds.

- **`enabled`** (default): Refunds are available on the reader without a passcode.
- **`enabled_with_passcode`**: Refunds require a passcode to authorize on the reader.
- **`disabled`**: Refunds are not available on the reader.

Stripe restricts access to passcode management based on user roles. Only users with Super Administrator, Administrator, Terminal Specialist, or Developer roles can view passcodes. Only users with Super Administrator, Administrator, or Terminal Specialist roles can modify passcodes.

> Make sure your admin passcodes are secure and not easily guessable. Avoid common patterns like sequential numbers (12345) or repeated digits (11111).

#### Dashboard

In the configuration, enable **Refunds** and optionally set a passcode under **Refund settings**.

## Tipping

Tipping isn’t supported in the Stripe Terminal app. These settings apply to standalone mode on a reader.

Enable on-reader tipping to let customers add a tip during the payment flow. You can configure tip amounts as percentages, fixed amounts, or allow custom tip entry.

#### Dashboard

Tipping has its own configuration section in the Dashboard.

1. From the [Terminal Locations](https://dashboard.stripe.com/terminal/locations) page, click **Manage locations**.
2. On the [Manage locations](https://dashboard.stripe.com/terminal/locations/manage) page, find the location you want to change.
3. In the overflow menu (⋯), click **Add configuration** or **Edit configuration**.
4. Use the filter to select **Tipping**.
5. Configure tip amounts as needed.
6. Click **Done**.
7. Click **Apply changes**.

For more details on tipping configuration, see [On-reader tipping](https://docs.stripe.com/terminal/features/collecting-tips/on-reader.md).

## See also

- [Use standalone mode with Connect](https://docs.stripe.com/terminal/payments/ready-made-apps/connect.md)
- [Terminal configurations](https://docs.stripe.com/terminal/fleet/configurations-overview.md)
- [Manage locations and zones](https://docs.stripe.com/terminal/fleet/locations-and-zones.md)
