ApexAi
The Communications subscription
- ApexAi charges only for the product.
- ApexAi never resells Twilio, and Twilio usage never appears on an ApexAi bill.
Communications / Twilio setup
Communications runs on your own Twilio account. This guide takes you from no account, or an existing one, to a tested number: which sender to choose, which registrations Twilio and Meta review, what to have ready for each, how you will know it is done, and whose move it is at every step.
Answer what you know. Steps that do not apply to you disappear; the rest stay in order. You set each step's status yourself: nothing on this page reads your Twilio account. Answers, statuses, and the worksheet are kept only in this browser.
18 steps shown until you answer · 0 complete
Provider estimates are Twilio's and Meta's own, as published in September 2026; their pages stay authoritative.
For every country you will text, read Twilio's messaging guidelines for it. Note which sender types it allows (local, mobile, toll-free, short code, or an alphanumeric sender ID), whether a number needs a regulatory bundle with identity documents before you can buy it, and whether the sender itself must be registered.
Who moves itYou → ApexAi
SMS guidelines by country (Twilio) Regulatory bundles (Twilio docs)
Each country sets its own rules. A number bought without its bundle can be unusable for messaging, and a sender type allowed in one country can be blocked in another. The step-by-step path on this page covers the United States only.
Done whenFor each country you know the sender type you will use and what it takes to register it.
Talk to ApexAi before you buy numbers for customers outside the US, so the sender you choose works with Communications.
Sign up with Twilio and verify your email address and your own mobile number.
Who moves itYou
Sign up at Twilio What a trial includes (Twilio docs)
Communications runs on your own Twilio account. Your numbers, registrations, sender reputation, and Twilio bill stay yours and never depend on ApexAi.
Done whenYou can open the Twilio Console and see your Account SID, which starts with AC.
A new account starts as a trial. The next step covers what a trial can and cannot do.
Upgrade from the Trial banner, or search “Upgrade”, in the Twilio Console. Twilio asks for a profile, a business address, a starting balance, and payment details.
Who moves itYou
WhereTwilio Console → Trial banner (or search “Upgrade”) → Upgrade
Trial limits (Twilio docs) How to upgrade (Twilio docs)
A trial is for trying Twilio. It can message only the recipients you verify, and Twilio currently also limits it to 30 days, to your sign-up country, to five verified recipients, and to Twilio-provided message templates, so it cannot carry Communications' replies. A trial cannot register a US number for texting or a WhatsApp sender.
Done whenThe Console no longer shows the Trial banner.
Exploring on a trial first is fine: verify your own phone and send Twilio's sample messages to it. Upgrade before you register a number or connect Communications.
Pick a local (10DLC) number or a toll-free number for texting US customers, using the comparison below. Then answer the sender question in Your path.
Who moves itYou
A2P 10DLC overview (Twilio docs) Toll-free verification (Twilio docs)
| Sender | Registration | Cost to register | Timing | Fits |
|---|---|---|---|---|
| Local number (10DLC) | A2P 10DLC: business profile, brand, and a campaign on a Messaging Service | One-time brand and vetting fees, a monthly campaign fee, and per-message carrier fees | Brand often minutes; campaign from days to a few weeks (Twilio's current estimates) | A local presence and two-way conversations |
| Toll-free number | Toll-Free Verification: one submission per number | Verification itself is currently free to complete; the number, messages, and other applicable charges are still billed | About 3–5 business days (Twilio's current estimate) | A national support identity |
| Short code | Carrier approval before the code is provisioned | Higher than long codes | Weeks to months | High-volume programs; talk to ApexAi first |
| Alphanumeric sender ID | Not available | — | — | Not supported for US or Canadian recipients |
Registration attaches to the number type. A local number is registered through A2P 10DLC and a toll-free number through Toll-Free Verification; neither registration carries over to the other type.
Done whenYou have chosen local or toll-free in Your path above.
In the Twilio Console, buy a number of the type you chose, with SMS among its capabilities. For WhatsApp alone you can instead register a number you already own, if it can receive a verification text or call.
Who moves itYou
WhereTwilio Console → Phone Numbers → Buy a number (filter by type and SMS capability)
Add numbers and senders (Twilio docs)
Customers write to this number and your replies come from it. Every registration below attaches to it.
Done whenThe number is in your Twilio account with SMS among its capabilities.
Twilio charges a number's monthly price from the day you buy it.
Open the number in the Twilio Console and confirm that it can send and receive SMS and that its registration matches its type: a local number sits in the Messaging Service of an approved A2P 10DLC campaign, and a toll-free number shows an approved verification.
Who moves itYou
WhereTwilio Console → Phone Numbers → Active numbers → your number
Add and configure numbers (Twilio docs)
Credentials that work do not mean texts will deliver. Carriers block an unregistered US local number, or one outside its campaign's Messaging Service, and an unverified toll-free number.
Done whenSMS is enabled, and its registration is approved or you know which step below finishes it.
Fill in the preparation worksheet on this page with facts about your real program: who sends, why, how people actually opt in, how often you text, how people get help or stop, and where your policies are.
Who moves itYou
What to prepare for A2P 10DLC (Twilio docs) What toll-free reviewers check (Twilio help)
Twilio's and the carriers' reviewers read your answers and open your links to compare them with your website. Registrations are most often rejected for a vague description, an opt-in reviewers cannot see, or a link that does not open. Wording that sounds right is not enough: the description has to match what a reviewer finds.
Open the preparation worksheet
Done whenThe worksheet's checks pass, and everything it describes is live on your website.
The worksheet turns what you enter into a draft. It never supplies consent wording or facts for you, and it is not legal advice.
Work through the chain in order: a business profile, then a brand, then a Messaging Service holding your number, then a campaign attached to that Messaging Service. When the campaign is approved, the numbers in its Messaging Service are registered.
Who moves itYou → Twilio's review
WhereTwilio Console → Messaging → Regulatory Compliance → A2P 10DLC
A2P 10DLC registration guide (Twilio docs) A2P 10DLC fees (Twilio help)
US carriers block texts sent by software from local numbers that are not registered (Twilio error 30034). The campaign describes your messages and how people consented; the Messaging Service is how Twilio ties your number to the campaign.
Current estimateBrands are often approved within minutes, but a manual review can take seven business days or more. For campaigns, Twilio currently gives two estimates: up to five business days in its vetting FAQ, and 10–15 days on its registration guide. Plan for the longer one.
Texts from this number to US recipients are blocked until the campaign is approved, so keep customers off it. Meanwhile you can connect Communications and point your webhooks at it; connecting does not depend on registration.
Twilio shows the reasons on the brand or campaign. Fix exactly what it names, usually the business details, the opt-in description, or a link reviewers could not open, then resubmit from the same record. Fees can apply to a resubmission; Twilio's fee page lists them.
Done whenThe campaign shows as approved and your number is listed in its Messaging Service.
Communications sends from your number directly. Messaging Service features that act only on messages sent through the service, such as Twilio's Compliance Toolkit or message scheduling, do not apply to Communications' messages.
Submit Toll-Free Verification for the number: your business details including its registration number (the EIN in the US), your use case, a production sample message, how people opt in with a public image or page showing it, and your expected monthly volume.
Who moves itYou → Twilio's review
WhereTwilio Console → Phone Numbers → Active numbers → your toll-free number → Regulatory information
Toll-free verification guide (Twilio docs) Why verifications are rejected (Twilio help)
A toll-free number that is unverified, or still pending, cannot text US or Canadian recipients (Twilio error 30032). Toll-free verification is its own program: no brand, no campaign, and no Messaging Service.
Current estimateTwilio currently estimates about 3–5 business days. Toll-Free Verification itself is currently free to complete; the toll-free number, its messages, and any other applicable charges are still billed at Twilio's rates.
The number cannot text US or Canadian recipients while verification is pending. Meanwhile you can connect Communications and point your webhooks at it.
Twilio returns a reason. Edit and resubmit the same record rather than creating a new one; Twilio advises resubmitting within 7 days. A rejection for prohibited content or a policy violation cannot be resubmitted.
Done whenThe number's toll-free verification shows as approved.
Make sure you have an upgraded Twilio account, administrator access with full permissions to your company's Meta Business Portfolio (or permission to create one), the number you will register, and a display name that follows Meta's guidelines.
Who moves itYou
WhatsApp self sign-up prerequisites (Twilio docs)
WhatsApp senders are registered with Meta. Twilio's self sign-up creates your WhatsApp Business Account inside your Meta portfolio, which needs an administrator, and a trial account cannot register a WhatsApp sender.
Done whenYou can sign in to Meta as a portfolio administrator, and you have chosen the number and display name.
You register your own business as the sender, which Twilio calls self sign-up for direct customers. Software vendors that sign up many businesses use Meta's Tech Provider program instead. ApexAi does not register senders for you.
Check by opening wa.me/ followed by the number with its country code in a browser. If the number is on the WhatsApp or WhatsApp Business app, delete that WhatsApp account on the phone. If it is on the WhatsApp Business Platform with another provider, turn off two-step verification for it in WhatsApp Manager, or ask that provider to.
Who moves itYou
Migrate numbers and senders (Twilio docs)
A number belongs to one WhatsApp account at a time. Registering it with Twilio fails (Twilio error 63110) while it is still registered elsewhere.
Done whenApp numbers: the WhatsApp account on the phone is deleted. Numbers with another provider: two-step verification is off, ready for Twilio's sign-up.
Deleting the app account ends your use of WhatsApp on that number. A move from another provider keeps the display name, quality rating, and messaging limit; Meta copies the approved templates and reviews them again, and some may need resubmitting.
In the Twilio Console, create a new WhatsApp sender, choose the number, and select Continue with Facebook. In Meta's window, choose your portfolio, create a new WhatsApp Business Account, set the display name, and enter the verification code sent to the number.
Who moves itYou → Meta's review
WhereTwilio Console → Messaging → Senders → WhatsApp senders → Create new sender
WhatsApp self sign-up (Twilio docs) WhatsApp sandbox for testing (Twilio docs)
WhatsApp messages come from a registered business sender. Twilio keeps one WhatsApp Business Account per Twilio account, so every later sender joins the same one.
Current estimateTwilio says registration usually completes within minutes; Meta reviews the display name afterwards.
Twilio's WhatsApp sandbox lets you try messages before the sender is online.
If Meta rejects the display name, the number is limited to 250 business-initiated messages in 24 hours and may be disconnected. Change it to a name that meets Meta's guidelines.
Done whenThe sender shows as Online in the Twilio Console.
If your Meta portfolio is not verified yet, verify your business with Meta. Separately, create the message templates you will need in Twilio's Content Template Builder and submit them for Meta's approval.
Who moves itYou → Meta's review
Business verification (Twilio docs) Content Template Builder (Twilio docs)
These are two different gates. Business verification is Meta confirming your business; it is free, and Twilio treats it as required before production. It raises your messaging limits and allows more than two senders. Templates are about content: outside the 24-hour window after a customer's last message, only an approved template can be sent, while inside it you can reply freely.
Current estimateMeta says business verification varies by region and can take several weeks, so start it early. Meta reviews each template separately.
Test with your own phone while verification is pending; Meta applies lower limits until it completes.
Meta names what it could not verify, such as a business name or document that does not match. Correct it in Meta and resubmit. For a rejected template, edit its wording or category and submit it again.
Done whenMeta shows your business as verified, and the templates you need are approved.
In the Twilio Console, find your Account SID and your primary Auth Token. Keep them in your own password manager until you connect.
Who moves itYou
WhereTwilio Console → Account settings → Keys & Credentials → API keys & tokens
API keys and tokens (Twilio docs) How Twilio signs webhooks
Twilio signs every webhook it sends, each inbound message and each delivery update, with your primary Auth Token, and Communications checks that signature before trusting a request. That is Twilio's design: no API key can verify a webhook.
Done whenYou know where both values are, and neither has been pasted anywhere else.
To rotate the Auth Token: create a secondary token in Twilio, update it in Communications, then promote it. Promoting deletes the old token at once, and inbound messages cannot be verified until Communications has the new one.
BuiltConnecting Twilio in Communications
In the Communications web console, enter your Account SID and Auth Token over HTTPS. Communications checks them with Twilio, stores them encrypted for your workspace, and never shows them again.
Who moves itApexAi → You
This is the only place your Twilio credentials go. Connection and messaging readiness are separate: you can connect while reviews are pending, and you will not reconnect when they finish.
Done whenCommunications shows Twilio as connected.
BuiltConnecting Twilio in Communications
Communications can do this for you: once Twilio is connected, choose the numbers to configure and it sets each one's incoming-message webhook to your workspace address, reads it back, and warns you if it is later changed in Twilio. To set it yourself instead, set your number's “A message comes in” webhook to your workspace address from ApexAi, using HTTP POST. For WhatsApp, set the same address on the WhatsApp sender. If the number is in a Messaging Service, keep the service's incoming-message setting on “Defer to sender's webhook”.
Who moves itYou → ApexAi
WhereTwilio Console → Phone Numbers → Active numbers → your number → Messaging configuration → A message comes in
Messaging webhooks (Twilio docs)
Twilio delivers each inbound message to that address and signs it for that exact URL, so it must match character for character. Communications sets delivery-status callbacks itself on every message it sends, so there is nothing else to configure.
Done whenA text to your number appears in Communications.
BuiltAutomatic webhook setup and change detection
Text your number from your own phone and watch it open a conversation. Reply from Communications and confirm it arrives. Then send STOP, confirm that replies stop, and send START.
Who moves itYou
A real round trip proves the whole path: Twilio's webhook, the signature check, your registration, delivery, and consent handling.
Done whenYour message appears as a conversation, your reply arrives with a delivered status, and STOP is honored.
If something fails, the troubleshooting table below maps Twilio's error codes to the step that fixes them.
With registration approved and the test passing, publish the number where customers find you and answer them in Communications.
Who moves itYou
Everything before this was permission and proof. From here, conversations and history run on your own accounts.
Done whenCustomers are writing in and your team is answering them.
For US texting registrations. Enter the facts of your real program; the worksheet assembles them into a draft and runs the checks reviewers make. It never adds consent wording or facts you did not enter: anything missing stays visibly marked. Business facts only—it refuses anything that looks like a Twilio credential. Entries stay in this browser.
Exactly as on your tax records.
Only if different from the legal name.
Two or three specific sentences about the messages you will really send.
The exact wording or steps, including the consent text next to a checkbox.
The sign-up page, or a screenshot or script at a public link reviewers can open.
For example, “Replies to your messages only” or “Up to 4 messages a month”.
An email address or phone number people can reach.
A real message you will send, as it will read.
Passing these does not mean approval. Reviewers also open your links and compare them with what you wrote; matching words are not enough if the page shows something else.
DRAFT: check every line against what actually happens before you submit it. Not legal advice. Business: [missing: legal business name] Website: [missing: business website] Use case: [missing: use case] Description: [missing: what you send, and why] How people opt in (message flow): Opt-in method: [missing: opt-in method]. What people see or do: [missing: the exact opt-in wording or steps] Opt-in evidence: [missing: a public link to the opt-in]. Message frequency: [missing: how often you text]. [missing: confirm your opt-in states “Message and data rates may apply”] [missing: confirm your opt-in gives HELP and STOP instructions] Support: [missing: a support contact]. Privacy policy: [missing: privacy policy link]. Messaging terms: [missing: messaging terms link]. Sample messages: 1. [missing: sample message 1] 2. [missing: sample message 2]
While you wait
Reviews run on Twilio's and Meta's schedules. Use the time for the steps that do not depend on them.
Who charges what
Bringing your own accounts means provider charges go straight to you. Prices change, so this page names the charges and links to the official rates instead of copying them.
ApexAi
Twilio
US SMS pricing (Twilio) A2P 10DLC fees (Twilio help) WhatsApp pricing (Twilio)
Your AI provider
What Communications automates
Communications is not generally released, so none of this is available yet. Built: built and verified in the product, not yet released to customers. Planned: part of the product direction; not built yet. The statuses you set in the guide above are your own record; once your workspace is connected, Communications reads A2P 10DLC and WhatsApp readiness from Twilio itself.
Checks your Account SID and Auth Token with Twilio when you connect, reports whether the account is a trial or full account, and explains a failure in plain words. Known limit: it does not yet accept a Standard API key.
Built
Refuses any inbound message or delivery update whose Twilio signature does not match your Auth Token.
Built
Re-checks your connection on a schedule and tells you when Twilio stops accepting it.
Built
Records each message's delivery status, reconciles late updates, and keeps Twilio's error code with a failed message.
Built
Allows free-form WhatsApp replies only inside the 24-hour window, and approved templates outside it.
Built
Honors STOP and START on each channel for every contact.
Built
Lists the numbers, Messaging Services, and WhatsApp senders in your Twilio account, with what each can do, so you register the ones you own instead of typing them in.
Built
Sets each selected number's or Messaging Service's incoming-message webhook for you, reads it back, and warns you if it is later changed in Twilio.
Built
Reads each number's A2P 10DLC campaign status and each WhatsApp sender's status from Twilio, instead of the statuses you set by hand on this page.
Built
Explains a failed delivery in the inbox and history in plain words, with what to do next.
Built
Reads Toll-Free Verification status from Twilio the same way.
Planned
Sends a test message through your whole setup and reports where it stopped.
Planned
Registrations stay between you and Twilio or Meta. You register your own business in your own account; Communications does not submit registrations for you, act as an intermediary, or claim consent on your behalf. Twilio also offers embeddable registration forms and a WhatsApp partner program for software vendors that onboard many businesses; ApexAi does not use them.
Troubleshooting
Communications keeps Twilio's error code with a failed message, so you can match it here or in Twilio's own documentation.
| What you see | Twilio code | What to do |
|---|---|---|
| Texts to US numbers from a local number are blocked | 30034 | The number is not registered for A2P 10DLC, or not in the approved campaign's Messaging Service. Finish registration and attach the number. Register your local number for A2P 10DLC |
| Texts from a toll-free number are blocked | 30032 | The toll-free number is unverified or still pending. Submit or finish Toll-Free Verification. Verify your toll-free number |
| Messages are filtered by the carrier | 30007 | The content or consent looks like spam to the carrier. Check that messages match your registered use case and that recipients opted in. Prepare your registration facts |
| You can only reach your own phone | 21608 | The account is a trial, which can message verified recipients only. Upgrade the account. Upgrade the account before you connect Communications |
| A recipient never gets messages | 21610 | They replied STOP. Twilio and Communications both honor it until they reply START. Test both directions |
| Messages to another country fail | 21408 | That country is not enabled in your Messaging Geographic Permissions in the Twilio Console. Enable only the countries you serve. |
| WhatsApp registration says the number is taken | 63110 | The number is still registered with WhatsApp elsewhere. Free it first. Free the number if it is already on WhatsApp |
| WhatsApp replies fail after a day | 63016 | The 24-hour window has closed. Send an approved template instead. Complete Meta business verification, and plan your templates |
| Connecting fails after you added an API key | 20003 | The connection check does not yet accept a Standard API key. Connect with your Account SID and Auth Token only. Find the credentials Communications needs |
| Inbound messages never reach Communications | 11200, 11217 | Twilio could not deliver to your webhook: the address differs from the one ApexAi gave you, or Communications refused the signature, usually because the Auth Token changed in Twilio. Check the address, then the token. Point incoming messages at Communications |