# Options

The optional fourth argument to [Finix.PaymentForm()](/js/payment-form). All properties are optional.

## Payment Methods

Controls which payment types the form accepts.

| Value                   | Description                                                  |
|-------------------------|--------------------------------------------------------------|
| `["card", "bank"]`   | Accept both card and bank accounts (default)                |
| `["card"]`            | Accept only credit or debit cards                            |
| `["bank"]`            | Accept only bank accounts (USA and Canada)                  |

**Type:** `string[]` — **Default:** `["card", "bank"]`

## Field Display

Show billing address fields below the payment fields.

**Type:** `boolean` — **Default:** `false`

To find the list of address field IDs, go to the [Field IDs](/js/field-ids) page and look for the **Address Fields** section.

| Option              | Type     | Default  | Description                             |
|---------------------|----------|----------|-----------------------------------------|
| `showLabels`       | `boolean`| `true`   | Show labels above each input          |
| `showPlaceholders` | `boolean`| `true`   | Show placeholder text inside inputs    |

An array of field IDs to hide from the form. The fields `number` and `expiration_date` cannot be hidden.

**Type:** `string[]` — **Default:** `[]`

For valid field ID values, visit the [Field IDs](/js/field-ids) page.

An array of field IDs to mark as required beyond the form defaults.

**Type:** `string[]` — **Default:** `[]`

Supported values: `name`, `card_holder_name`, `account_holder_name`, `address_line1`, `address_line2`, `address_city`, `address_region`, `address_postal_code`, `address_country`.

## Custom Text

Override the default label text for any field, keyed by field ID.

**Type:** `Record<string, string>` — **Default:** `{}`

Override the default placeholder text for any field, keyed by field ID.

**Type:** `Record<string, string>` — **Default:** `{}`

Override the default validation error messages for any field, keyed by field ID.

**Type:** `Record<string, string>` — **Default:** `{}`

Pre-fill field values on form load, keyed by field ID.

**Type:** `Record<string, string>` — **Default:** `{}`

The following PCI-sensitive fields **cannot** be pre-filled: `number`, `expiration_date`, `security_code`, `account_number`, `bank_code`, `institution_number`, or `transit_number`.

Custom text for the auto-rendered submit button. Only applies when `onSubmit` is provided.

**Type:** `string` — **Default:** `undefined`

## Validation

| Option                      | Type     | Default  | Description                                                          |
|-----------------------------|----------|----------|----------------------------------------------------------------------|
| `requireSecurityCode`       | `boolean`| `true`   | Require CVV/CVC for card payments                                   |
| `confirmAccountNumber`      | `boolean`| `true`   | Show double-entry confirmation for bank account number               |
| `hidePotentialIssueMessages` | `boolean`| `true`   | Hide warning messages for non-standard but valid card numbers      |
| `hideErrorMessages`         | `boolean`| `false`  | Hide all inline validation error messages                            |

## Appearance

| Option              | Type     | Default  | Description                             |
|---------------------|----------|----------|-----------------------------------------|
| `theme`            | `string` | `"finix"` | Built-in visual theme                   |
| `enableDarkMode`   | `boolean`| `false`   | Apply dark styles when `prefers-color-scheme: dark` |

Available themes: `finix`, `amethyst`, `sapphire`, `topaz`, `ruby`, `emerald`, `midnight`, `elevated`.

For custom CSS overrides, see [Styles & Fonts](/js/styles-and-fonts).

## Plaid

Configure the Plaid Link experience for bank account connections. Only applies when `paymentMethods` includes `"bank"`.

| Property       | Type     | Default        | Description                                            |
|----------------|----------|----------------|--------------------------------------------------------|
| `displayName`  | `string` | Application name | Name shown at the top of the Plaid modal               |
| `language`     | `string` | `"en"`        | Language for the Plaid Link experience                 |
| `countries`    | `string[]`| `[\
