Determining whether something is an acid, base, or amphoteric I have to find whether these compounds are acids, bases, or amphoteric: $\ce{CO3^{-2}}$, $\ce{HPO4^{2-}}$, $\ce{H3O^{+}}$ and $\ce{NH4^{+}}$. 

I know the first can obviously act as a base, but others can gain or lose $\ce{H^{+}}$, so I think they are amphoteric. However, according to my book, I'm wrong. Can you help me clear my doubt? Thank you very much!
An amphoteric substance can act both as an acid and a base. That is, an amphoteric substance can donate protons and also accept protons.

$\ce{CO3^{-2}}$ does not have any protons so it cannot act as an acid. It is the conjugate base of $\ce{HCO3^{-}}$.

$\ce{HPO4^-{2}}$ is the conjugate base of $\ce{H2PO4^{-}}$. It can accept a proton to go back to $\ce{H2PO4^{-}}$ or it can donate a proton to become $\ce{PO4^{-3}}$. Thus, it is amphoteric.

$\ce{H3O^{+}}$ is the conjugate acid of $\ce{H2O}$. It can donate a proton to go back to $\ce{H2O}$ but it cannot accept any other protons. Thus, it not amphoteric.

$\ce{NH4^{+}}$ is similar to $\ce{H2O}$. In this case it is the conjugate acid of $\ce{NH3}$. As such it can donate a proton to go back to $\ce{NH3}$ but it cannot accept any protons. It is not amphoteric.

So, out of your list only $\ce{HPO4^-{2}}$ is apmhoteric.