| UI or UX | UI + UX - Secure card payment capture and verification form | UI + UX - Secure bank account identification and verification form | UI + UX - Fixed-format text entry control | UI + UX - Final editable answer summary before committing a transaction |
| UI guidance | Render card entry as a secure grouped checkout surface with processor-hosted or payment-element fields for card number, expiry, CVC or CID, billing postal code when required, clear labels, card brand feedback, field errors, wallet options, and a masked review summary. | Render bank details as a secure grouped form with account holder name, routing identifier, account number, optional roll number or regional equivalent, clear hints, field-specific errors, verification status, and a masked review summary. | Show a persistent label, visible example or hint, fixed grouping, literal separators, and field-adjacent error text so users understand which characters are typed and which are supplied by the mask. | Render a single review page immediately before commit with a clear title, grouped answer sections, readable key/value rows, per-answer or per-section Change actions, skipped optional answers when meaningful, and a primary button whose label names the committed action. |
| UX guidance | Use payment card entry when a user needs to pay with a card or add a card-on-file payment method and the product can protect cardholder data through a payment processor or compliant card-data environment. | Use bank details when the service needs an account to pay a user, collect a direct debit, issue a refund, run payroll, initiate a bank payment, or save a payout destination. | Use an input mask to help users enter data that has a stable character structure, especially when grouping matches the physical document, card, container code, or serial key users are copying from. | Use review before submit to give users one final chance to verify and correct captured answers before a transaction is sent, paid, published, applied, or otherwise committed. |
| Good UI | A checkout uses hosted fields for Card number, Expiry, CVC, and ZIP code; it detects Visa, accepts pasted spaces, validates expiry, tokenizes the card, and reviews Visa ending 4242 before charge. | A refund form asks for Name on the account, Sort code, Account number, and Building society roll number (optional), then shows a masked summary before Confirm payout. | A container number field shows the example ABCD 123456 7, groups pasted characters into that shape, and displays the raw value ABCD1234567 before submit. | A claim review page has Applicant, Contact details, Evidence, and Declaration sections; each row shows the captured answer and a Change link with hidden context such as Change email address. |
| Bad UI | A page asks users to paste card number, expiry, CVC, and billing address into one notes field. | A form has one field labelled Bank details and asks users to paste name, account number, sort code, and notes together. | A phone field hard-codes a domestic mask and rejects valid international numbers. | A final page says Check your answers but shows only a paragraph and a Continue button with no answers, section headings, or change links. |
| Good UX | A user pastes 4242 4242 4242 4242, sees Visa detected, enters 12/30 and 123, tokenizes the card, and reviews Visa ending 4242 before paying. | A user types a sort code with spaces, the form normalizes it to 12-34-56, checks the account holder name, warns about a close match, and lets the user review before payout. | A user pastes abcd1234567, sees ABCD 123456 7, reviews the canonical value, and fixes one middle digit without retyping the whole code. | A user changes their phone number from review, lands on the phone page with the old value pre-filled, saves, and returns directly to review with other answers preserved. |
| Bad UX | A user enters an expired card and receives only Payment failed after submit with no field-level route back to expiry. | A user mistypes one digit and the service silently accepts the account, then the payment fails days later with no field-level recovery. | A user pastes a valid value with spaces and the mask discards characters because it only supports one-character-at-a-time typing. | A user selects Change address, edits one field, then has to repeat every later page before finding the review page again. |
| Best fit | Users need to pay with a credit, debit, prepaid, or network card. | The product needs bank account details to send money, collect money, set up payroll, save payout details, issue refunds, or initiate bank-to-bank payments. | The value has a stable character pattern and users benefit from live grouping. | A user has provided multiple answers and should verify them before a consequential submit action. |
| Avoid when | The task is to collect bank account identifiers for payout, ACH, direct debit, open banking, or bank transfer. | The task is to collect payment card credentials rather than bank account identifiers. | Valid values have many lengths, regions, scripts, or exception formats. | The task is a single low-risk field with clear inline validation and an obvious submit action. |
| Required state | Initial secure checkout state with amount, accepted card brands, wallet option, card number, expiry, CVC or CID, and billing postal code if required. | Initial secure collection state with purpose, account holder name, routing field, account number, optional roll number or regional equivalent, and hints. | Empty untouched state with label and visible format example. | Initial review state with grouped captured answers, relevant sections, and explicit submit action. |
| Accessibility burden | Use visible labels for card number, expiry, CVC or CID, cardholder name, and billing postal code; do not rely on placeholder examples alone. | Group account fields under a heading or legend that explains why bank details are being requested. | Keep a real visible label and do not use the mask pattern or placeholder as a substitute for the field name. | Use headings that make the review task explicit, such as Check your answers before sending your application. |
| Common misuse | Using one multiline field for card number, expiry, CVC, and billing details. | Using one freeform field for all account details. | Using a mask because a format exists even though many valid values do not fit it. | Using a review page that contains no captured answers. |