Why SMS campaign rejections are almost always a design problem
Made Right Software builds MVPs and custom software for founders and small business owners, and audits or rescues code that already exists. Fixed price. Delivered in 4 to 10 weeks.
A client reached out after their Twilio SMS campaign got rejected twice. They’d built a self-service booking system that sent transactional messages. Booking confirmations, access codes, session reminders. The code worked fine. They had a privacy policy, terms of service, and included STOP and HELP language in every message. Still, the second rejection came back with the same two issues. The website didn’t show enough business info, and the call to action couldn’t be verified.
By that point, they were stuck. So they looked for help.
“Website does not contain sufficient business information.”
“Issues verifying the Call to Action (CTA) provided for the campaign.”
Twilio campaign rejection errors, shared in a public Upwork job listing, April 2026
What actually went wrong
The opt-in disclosure lived on their business site. But the phone number was collected through a third-party booking platform. To carriers reviewing the campaign, that split means no verifiable consent path. Disclosure on one page, number collected on another. It might as well not have existed.
The wording wasn’t the problem. The structure was. The disclosure was in the wrong place. The campaign description talked about the user experience, not how consent was captured. And they’d picked a number type without thinking about which option verifies faster for low-volume transactional use.
None of this is hidden. These are the basics anyone who’s done A2P registration before would catch before the first submission, not after the second rejection.
What it really costs to treat compliance as an afterthought
After the first rejection, a developer unfamiliar with A2P usually tries the most obvious fix. Update the website. Add more disclosure text. Resubmit. Then the second rejection comes back with the same errors. Now they dig deeper. More time spent reading carrier docs, scrolling forum threads, tweaking wording. Another review cycle. Depending on the carrier backlog, each round takes one to two weeks.
By the time we see these clients, the pattern is always the same. Three to six weeks have passed since the first rejection. Launch is delayed. Developer hours meant for product work got burned reverse-engineering compliance rules. And they still have to rebuild the consent flow from scratch, because better wording won’t fix a broken structure.
They paid once to build the system. Then again in lost time and delayed launch. Now they’re paying a third time to fix it. The specialist fee at the end costs more than getting the architecture right at the start. The same principle applies to custom software for small businesses.
What it costs when compliance is part of the design
When someone familiar with A2P is involved early, the consent mechanism is built into the opt-in form from the beginning. The campaign description is written alongside the website disclosure, because carriers check that they match. The number type is chosen based on the use case before any code is written.
For a low-volume, single-entity transactional setup, toll-free numbers usually verify faster and with fewer compliance requirements than 10DLC. That’s a two-minute decision early on. Later, it becomes a multi-week delay.
With the right setup, the campaign clears on the first try. Launch stays on track. The work takes a few hours. The only thing that makes it expensive is waiting until after the rejections.
If you’re building a system that sends transactional SMS, or you’re already in the rejection cycle, we’re happy to take a look. The same goes for any custom software challenge. Getting the architecture right upfront saves money and time.