Skip to navigation

SMS registration and activation

SMS to US destinations requires an approved messaging campaign. Number activation is a separate check and depends on the sending line and account. Non-US destinations may be available without US campaign approval on some lines; a Canadian sending number alone does not determine the requirement. This guide covers US registration and how to inspect line readiness. Inbound SMS can be tested before approval. iMessage and WhatsApp use different onboarding paths.

1. Choose the account and registration

Open the registration form, or use POST /v1/register from your backend.

TypeUse whenOne-time registration fee
sole_proprietorRegistering without an EIN$25
standard_brandRegistering an EIN business for lower-volume messaging$25
high_volumeRegistering an EIN business for higher volume and external vetting$70

Fees draw from the billing balance. Prepare accurate business/contact information, your messaging use case, sample messages, consent flow, and a public image of the opt-in flow. EIN business registrations also need business details and policy URLs. Use the API reference for the complete schema.

POST /v1/register defaults to create_sub_account: true for parent accounts. Save the returned sub_account_id, and create numbers and agents in that scope. Set create_sub_account: false only when you intend to register your main account. A campaign on one account does not activate unrelated numbers in another.

2. Track review and required changes

curl --fail-with-body "https://api.agentphone.ai/v1/register/status" \
-H "Authorization: Bearer $AGENTPHONE_API_KEY" \
-H "X-Sub-Account-Id: YOUR_SUB_ACCOUNT_ID"

Omit the sub-account header when registering on the main account. Read campaign_status, stage, and issue when present. Stages can include received, verifying_business, registering_campaign, carrier_review, provisioning, complete, and action_required. Review time depends on the registration and carrier; submitting the form is not approval.

If an issue needs attention, inspect GET /v1/register and follow the returned explanation. PATCH /v1/register updates an existing registration without a new submission fee; changes go through review. Do not submit another paid registration just to check status or edit a field.

3. Check the exact number

Approved registration but sending is blocked

Account approval and number activation are different checks. Fetch the number you intend to send from, using the same API key and sub-account header:

curl --fail-with-body "https://api.agentphone.ai/v1/numbers/YOUR_NUMBER_ID" \
-H "Authorization: Bearer $AGENTPHONE_API_KEY" \
-H "X-Sub-Account-Id: YOUR_SUB_ACCOUNT_ID"
outboundSmsNext step
registration_requiredVerify registration and account scope. If the campaign is approved in this same scope, contact support with the number ID and request ID.
activatingWait for the number’s campaign attachment. This usually takes a few minutes after purchase. Check again before sending.
enabledThe number attachment is confirmed. Make a test send and inspect its result; destination restrictions and delivery failures can still apply.

A newly activated number can briefly receive carrier error 4773 while routing catches up. If the original message has definitively failed for that reason, retry once after about 30 seconds. Persistent failures need support, not repeated purchases or registrations.

4. Test delivery and plan volume

Send to a consenting mobile recipient, identify your business, and include the opt-out language appropriate to your campaign. A successful send response confirms acceptance; read message history for delivery status and failureReason.

Use Messaging rate limits to plan throughput and segmentation. For accepted-but-undelivered messages or an approved campaign that still cannot send, follow Troubleshooting.