Skip to content

Phone Validation

Confirm that phone numbers submitted through your forms are real, active, and of the line type you require.

Credits Required

Phone validation is available on all plans, including free. Paid plans include a monthly credit allowance; free plan users can purchase credits manually. See Validation Credits for details.

Basin checks each phone number through SpamCheck.ai, which queries live carrier data to verify the number's status and line type. Each successful check consumes one validation credit.

Enabling Phone Validation

  1. Open your form and go to Settings → Spam
  2. Scroll to the Phone Validation section
  3. Toggle Enable Phone Validation on
  4. Configure the options below
  5. Click Save

Image showing the phone validation settings panel

Validation Stage

The validation stage controls when Basin checks submitted phone numbers.

Stage Description
Client Only Validation runs in the browser before submission. Can be configured to block submission if the number fails.
Server Only Validation runs on Basin's servers after the form is submitted.
Client + Server Validation runs in the browser first, then again on the server. Provides the highest coverage.

Server-side validation is a silent check — users do not see a browser-side error. The outcome is determined by your enforcement setting.

Client + Server uses 2 credits per submission

When using the Client + Server stage, Basin runs two separate validation checks — one in the browser and one on the server. Each check consumes one credit, so each submission uses two credits for the phone field.

Client-side validation requires your form to be built with Form Studio or BasinJS. It is not available for plain HTML form backends — use Server Only in that case.

Form Studio

  1. Open your form in Form Studio
  2. From the field picker, add a Phone with Validation widget to your form
  3. Select the field — the settings panel will show an Enable phone validation toggle and a Client side validation enforcement dropdown
  4. Set enforcement to Warn (flags but allows submission) or Block (prevents submission on failure)
  5. For full settings — validation stage, mobile-only, block VoIP, and more — go to Form → Settings → Spam

Image showing the Phone with Validation widget and its settings in Form Studio

BasinJS

BasinJS 2.11.0 Required

Phone validation requires BasinJS 2.11.0 or later. See the BasinJS docs for installation and upgrade instructions.

Add the data-basin-phone-validation attribute to any phone input inside a Basin-managed form. Set the value to your desired enforcement mode:

<form action="https://usebasin.com/f/YOUR_FORM_ID" data-basin-form>
  <input type="tel" name="phone" data-basin-phone-validation="warn">
  <button type="submit">Submit</button>
</form>
Mode Behavior
warn (default) Shows a warning for invalid numbers but still allows submission. Warning details are forwarded to the server.
block Shows an error and prevents submission until the number passes or the validation service is unavailable.

Validation fires as the user types (debounced) and again on blur. In block mode, Basin JS also checks the result on submit and prevents submission if the number is invalid.

Basin JS inserts an inline feedback message after the input. In block mode, the input also receives the class basin-phone-invalid for CSS styling. Multiple phone fields on the same form are each validated independently.

If the validation API is unreachable or rate-limited, the field is treated as valid so submission is never blocked.

Client-Side Validation Is Not a Security Boundary

Always enable server-side validation for enforcement that matters. Users can disable JavaScript or intercept requests.

Enforcement

Server-side enforcement controls what happens when a number fails validation.

Enforcement Behavior
Warn The submission is accepted but flagged in the Basin dashboard for review.
Block The submission is rejected and marked as spam.

Use Warn when you want visibility into invalid numbers without risking false rejections. Use Block when data quality is critical and you are confident in your setup.

Mobile-Only Filter

Pro Plan and Above

The Mobile-Only and Block VoIP options require the Pro plan or above.

When enabled, Basin rejects any number that is not identified as a mobile line type. This is useful for forms where a mobile number is specifically required, such as SMS follow-up workflows.

Block VoIP

When enabled, Basin rejects numbers identified as fixed VoIP or non-fixed VoIP lines. This blocks virtual numbers from services like Google Voice, Skype, and similar providers commonly used to bypass phone validation.

Rate Limiting

Session Validation Limit

Set a maximum number of phone validation attempts per user session. This prevents abuse where a user tries many numbers in quick succession.

Rate-Limited Behavior

Controls what happens when a session exceeds the validation limit:

Option Behavior
Allow with Log The submission is accepted and the rate limit event is logged.
Mark as Spam The submission is marked as spam.

Credits

Each phone number validated consumes one credit from your shared validation pool. Monthly credits are used first; purchased credits are drawn on once your monthly allowance is exhausted.

If credits run out mid-month, phone validation will stop checking numbers and Basin will notify you by email. See Validation Credits to purchase more or configure auto top-up.