code: func (api UsersAPI) VerifyPhoneNumber(w http.ResponseWriter, r *http.Request) {
  	username := mux.Vars(r)["username"]
  	label := mux.Vars(r)["label"]
  	userMgr := user.NewManager(r)
  
  	values := struct {
  		Smscode       string `json:"smscode"`
  		ValidationKey string `json:"validationkey"`
  	}{}
  	if err := json.NewDecoder(r.Body).Decode(&values); err != nil {
  		log.Debug("Error decoding the ProcessPhonenumberConfirmation request:", err)
  		http.Error(w, http.StatusText(http.StatusBadRequest), http.StatusBadRequest)
  		return
  	}
  	userobj, err := userMgr.GetByName(username)
  	if err != nil {
  		http.Error(w, http.StatusText(http.StatusNotFound), http.StatusNotFound)
  		return
  	}
  
  	_, err = userobj.GetPhonenumberByLabel(label)
  	if err != nil {
  		http.Error(w, http.StatusText(http.StatusNotFound), http.StatusNotFound)
  		return
  	}
  
  	err = api.PhonenumberValidationService.ConfirmValidation(r, values.ValidationKey, values.Smscode)
  	if err != nil {
  		log.Debug(err)
  		if err == validation.ErrInvalidCode || err == validation.ErrInvalidOrExpiredKey {
  			writeErrorResponse(w, 422, err.Error())
  		} else {
  			http.Error(w, http.StatusText(http.StatusInternalServerError), http.StatusInternalServerError)
  		}
  		return
  	}
  	userMgr.RemoveExpireDate(username)
  	w.WriteHeader(http.StatusNoContent)
  }
docs: // VerifyPhoneNumber is the handler for PUT /users/{username}/phonenumbers/{label}/validate