Skip to main content

Factory

Options

All keys are optional. Both bank modes are implicitly required.

fieldLayout

fieldLayout is an ordered array, not a string enum. Reorder manual-mode fields and group them into rows:

fields (manual mode)

accountType

When hidden, the validator skips the account-type check. placeholder renders as a non-selectable prompt option at the top of the <select>; when a placeholder is set, defaultValue is ignored and the prompt is shown instead. Without a placeholder, defaultValue pre-selects 'checking' (or 'savings' if you override it).

routingNumber, accountNumber, confirmAccountNumber

Each accepts: hidden is not supported on these three fields: they are interdependent and cannot be individually collapsed.

Value

The bank element emits a discriminated union on onSubmit keyed by mode. Manual-mode payloads carry encrypted account credentials; fast-signin (Plaid) payloads carry a linked-account token.
Branch on value.mode, then read the nested manual or plaid payload. Forward the full envelope to your server verbatim; do not attempt to unpack the encrypted* fields on the manual branch, they are decrypted server-side by Overflow.

FieldError.field values

'accountType', 'routingNumber', 'accountNumber', 'confirmAccountNumber', 'bank' (synthetic error when the shopper selects bank inside Checkout but never completes fast-signin).

Events

Every element event is supported. See Events overview.

Methods

  • bank.mount(selector)
  • bank.update(partialOptions)
  • bank.submit(): void — validates and emits onSubmit / onError. Control mode with mode.default / mode.lockTo (and update({ mode })).
  • bank.unmount()
  • bank.destroy()
  • bank.on(event, handler) — subscribe to events.

Encryption cache helper

Call overflow.invalidateBankFieldEncryptionCache() to force the next bank submit to re-encrypt with fresh keys (for example, after a long idle session). This is a top-level helper on the Overflow instance.
Last modified on July 29, 2026