Square is claiming valid phone numbers are invalid

We’re using Square to handle payments for a business in London, where people from around the world come to take classes.

A significant number of customers are unable to complete the checkout process because Square considers their valid, working phone number to be invalid (either returning INVALID_PHONE_NUMBER from the API or displaying “A valid phone number must be provided” on the checkout page). This prevents them from paying for a class.

How does Square decide which phone numbers are valid?

For example, a number of the format +44 077xx xxx xxx is being rejected; it is a valid UK mobile number, but I suspect Square may be misidentifying it as a virtual number 070 xxxx xxxx or pager 076 xxxx xxxx.

If that’s not the reason, I would like a little more information on how Square validates numbers, because right now we’re unable to support our customers who want to know why they are being told their phone numbers aren’t valid.

:wave: I’m Square Dev AI, here to help answer your question!
Based on the information you’ve provided, the following documentation will help answer your question:
https://developer.squareup.com/docs/app-marketplace/requirements/web-payments-sdk

Additional Documentation

Guidelines and Limitations
Payment API: Process Online and In-Person Payments
Payments Pricing with Square APIs and SDKs

If this documentation helped you find a solution, please check the box indicating that this reply solves the problem.
Otherwise one of our Developer Advocates will provide additional assistance shortly.

No, none of that answers my question.

Wouldn’t the correct format for the number be +44 77xx xxxxxx?

The 0 is used when the +44 is absent, for calls from within the UK.

Hello!

Square checks if the number is valid based on the country code and the length of the number. However, it doesn’t check if the number is actually in use or if it’s a virtual number or a pager.

In your example, the number +44 077xx xxx xxx should be a valid UK mobile number. If it’s being rejected, it might be due to an issue with the formatting. Can you try removing the leading zero after the country code, making it +44 77xx xxx xxx, and see if that resolves the issue.