Правильно и бесплатно тут:
services.fms.gov.ru/info-service.htm?sid=2000 каждый день скачиваешь базу невалидных паспортов и чекаешь по ней. А тут как это сделать:
https://habr.com/ru/post/307568/
Не правильно: можно взять чужое решение, например c
https://proverk.ru/passport/
Смотришь в нетворк и видишь, что запрос идет на POST
https://proverk.ru/ajax.php данные: {serial: 1111, number: 123123}. Но если увидят, могут заблочить твой сервер.