# PinInput Multi-cell PIN or one-time-code entry. Use PinInput for a named fixed-length PIN or one-time code that must participate in native form submission. ## API The package declarations define these public members. ### Inherited prop contracts - `AccessibleName` — Requires exactly one accessible name: `label`, `aria-label`, or `aria-labelledby`. - `Omit` — Props from this native base are accepted except the listed members. | Member | Type | Kind | Required | Default | Description | | --- | --- | --- | --- | --- | --- | | `allowPaste` | `boolean` | prop | No | `true` | Allow a whole code to be pasted into the control. | | `aria-label` | `string` | prop | No | `undefined` | No additional description. | | `aria-labelledby` | `string` | prop | No | `undefined` | No additional description. | | `characters` | `'numeric' \| 'alphanumeric' \| 'any'` | prop | No | `'numeric'` | Character set accepted during typing and paste. | | `error` | `string` | prop | No | `undefined` | Error text associated with the real input. | | `label` | `string` | prop | No | `undefined` | No additional description. | | `length` | `number` | prop | No | `6` | Number of cells and required code length. | | `mask` | `boolean` | prop | No | `false` | Hide entered characters in the visual cells. | | `onComplete` | `(value: string) => void` | callback | No | `undefined` | Fired once the value reaches `length`. | | `onError` | `(error: PinInputError) => void` | callback | No | `undefined` | Fired when typed or pasted content does not match `characters`. | | `value` | `string` | binding | No | `''` | The entered code. Two-way bindable. | ## Related - [Label](/docs/components/label): Visible form label with required-state treatment. - [Input](/docs/components/input): Single-line field with internal or external labeling, hint, error, icons, and password reveal. - [Switch](/docs/components/switch): Bindable binary switch with visible or aria-only labeling.