вообще, по сути просто делается двухшаговая форма - первый шаг - ввод номера телефона. Нажимаешь кнопку и в валидации идёт ображение к апи для отправки смс, если ошибка, то там же в валидации кидаешь ошибку, типа номер неправильный, ну или что оператор сдох. И в форме остаётся только одно поле - для ввода кода. А код ты получил в ответе от смс-шлюза, кладёшь его в сторэйдж формы (ну $form-State->set(‘code’, $code)) и потом при отправке второго шага формы опять валидируешь