Hi Hisham,
Having Invoice at different price from PO price is possible and practical scenario in any business. So, that is the reason Dynamics allows that and accept.
Now, if as per business you are suppose to match PO price and invoice price and you do not want to accept any difference or want to accept difference up to some threshold only then you need to setup "Invoice Matching Process" in AP > Parameters > Invoice validation
We have two options:
1. Two Way Matching: In this you will match PO Price with Invoice price looks like ideal for your scenario since you are using category
2. Three way Matching: In this Invoice prices is matched with PO price and Invoice quantity is matched with Product receipt quantity
You can even have approval process in case of any dispcrepnecy before accepting.
Please use shared link by Mattgua for more details.