Where your Steam verification code actually comes from
Steam Guard protects logins in one of two ways. With email Steam Guard, a short code goes to the email address on the account each time you sign in from a new device or browser. With the Steam Guard Mobile Authenticator, the Steam Mobile app shows a code that changes every few seconds, or asks you to approve the sign-in, and nothing is sent by SMS.
A text from Steam usually turns up at other moments: when you add a phone number, when you change it, or when you use it to recover the account. That SMS carries a short code and says it is from Steam. If you are waiting for a login code by text and your account uses email Steam Guard, it will never arrive, because Steam is sending it somewhere else.
So check which method your account uses before anything else. The Steam Guard settings in the Steam client or the Steam Mobile app show whether codes go by email or through the app.
Steam not sending verification code: what to check
If it is an email code, look in spam, promotions and any filters you have set. Make sure you are checking the address that is actually on the Steam account, which is not always the one you use every day. Codes expire, so request a fresh one rather than typing an old one.
If it is an SMS, the number format matters: pick the right country and leave out any leading zero. Some carriers filter automated messages, and a number that is new, recycled or flagged may not receive texts from Steam at all. Like many large platforms, Steam may refuse some number types when you try to add them, including some VoIP and shared numbers.
Requesting codes again and again can make things worse, because platforms slow down repeated requests. Wait a few minutes between attempts. If you have lost access to both the email and the phone on the account, use Steam Support's account recovery process rather than trying new numbers.
Why a shared number is a bad idea for Steam phone verification
A Steam account is not a throwaway sign-up. It holds games you paid for, items that may have real market value, and possibly a wallet balance. The phone number on the account is one of the ways Steam lets someone prove ownership during recovery.
A free shared number has a public inbox. Anyone browsing it can see the texts, and the same number may be used by someone else tomorrow. If that number is on your Steam account, a stranger could watch for a recovery code and use it. This is an easy way to lose an account, and an easy one to avoid.
A one-time per-code number has a quieter version of the same problem. You read the first code privately, but you do not keep the number. If Steam asks you to confirm it later, or you need it to recover the account, it is gone.
Using a rental as the number on your Steam account
A private rental is a dedicated non-VoIP number with an inbox only you can read. Rentals run from 1 day up to 12 months depending on the country, start from $4.99, and include unlimited SMS. For Steam, pick a long duration and renew it, so the number stays yours while it is on the account.
Add the number in your Steam account settings, then read the SMS code on the rental's page on ASMS.ai. If Steam refuses the number, you can cancel between 5 and 120 minutes after renting, as long as no SMS has arrived, and get a refund.
If you would rather not depend on a phone number for logins, the Steam Guard Mobile Authenticator on a phone you own is the strongest option day to day. Keep your recovery details current either way: an email you control and a number you will still have next year.
When a per-code number is enough
The /otp page sells private numbers per code, from $0.50. You pick Steam as the service, see its price and stock, and pay for one code. If no code arrives, the order is refunded automatically.
That suits a narrow case: a quick check on an account you do not plan to keep, or testing. For your main account, a number you cannot read next month is a problem waiting to happen.
If you do go per code, start with the VoIP High Quality pool (US, +1), which is the cheapest. If Steam refuses it, a UK number on the same page is the next try, and a rental is the step after that.