Tell customers first, not after they call
The cheapest customer service is telling people before they have to ask.
Tell them first
Payment reminders, transaction alerts, and notice of something changing. A message that arrives before the customer notices the problem is a call you never take.
You will know if the code never arrived
Send verification codes through the API with delivery receipts, so you know whether the code arrived before you blame the customer for not entering it.
Tight control over who can send
Eighteen separate permissions, two-factor authentication, IP allow-listing and per-system API keys. Nobody has more access than their job needs.