Cómo crear una campaña A2P 10DLC en Twilio sin rechazos

8 de abril de 2024 • 14 min de lectura

Inicio / Blog / Cómo crear una campaña A2P 10DLC en Twilio sin rechazos

Sobre el autor

Author

Gonzalo Gomez

Especialista en IA y Automatización

Diseño sistemas de comunicación impulsados por IA. Mi trabajo se centra en agentes de voz, chatbots de WhatsApp, asistentes de IA y automatización de flujos, construidos principalmente sobre Twilio, n8n y LLM modernos como OpenAI y Claude. En los últimos 7 años he entregado más de 30 proyectos de automatización que manejan más de 250 000 interacciones mensuales.

Suscríbete a mi newsletter

Si te gusta el contenido que hago, puedes suscribirte y recibir información valiosa por correo. No se envía spam, solo novedades sobre publicaciones interesantes o contenido especializado del que hablo.

Cómo crear una campaña A2P 10DLC en Twilio sin rechazos | Guía paso a paso para registrar la brand en Twilio, completar el formulario de campaña y esquivar los rechazos que a mí me costaron varios reenvíos.

Introducción

Si tu empresa necesita implementar un servicio de mensajería, vas a necesitar una solución de comunicaciones en la nube. Sirve para mandar recordatorios de turnos por SMS, confirmaciones de reserva o cualquier otro tipo de mensaje. Sea una marca conocida como Twilio o cualquier otro proveedor externo, todos piden lo mismo: vas a tener que pasar por la verificación de campaña A2P 10DLC si querés mandar SMS desde un número estadounidense de 10 dígitos a otros números de Estados Unidos.

 

Cada plataforma puede tener pasos distintos, o incluso otra interfaz para completar el formulario, pero el concepto es el mismo:

 

  1. Primero registrás tu marca y le pasás al proveedor de comunicaciones todos los datos legales
  2. Completás el formulario de campaña A2P 10DLC, donde indicás para qué la vas a usar
  3. Vas y volvés ajustando los detalles hasta que te la aprueban, y recién ahí podés mandar SMS desde el número que compraste

 

Tené en cuenta que estos pasos recién hacen falta cuando terminaste el desarrollo o la integración, o cuando se te acabaron los créditos gratis de la plataforma que elegiste. Mientras integrás Twilio en tu proyecto, te dan un número 10DLC de prueba para experimentar.

 

¿Qué es A2P 10DLC?

A2P quiere decir Application-to-Person: cualquier mensaje que tu software le manda a una persona, a diferencia de alguien escribiendo desde un teléfono. 10DLC quiere decir 10-Digit Long Code, que no es otra cosa que un número estadounidense común. Juntos, A2P 10DLC es el marco que usan las carriers de Estados Unidos para registrar la mensajería de empresas que sale por números locales comunes.

 

Por qué existe: el sistema de SMS/MMS de Estados Unidos no fue diseñado para el uso que se le da ahora. Antes de este marco de compliance, las empresas mandaban tráfico de aplicaciones por números pensados para conversaciones entre personas. Las carriers no tenían forma confiable de distinguir un recordatorio de turno legítimo de una estafa. Los spammers inundaron el canal con mensajes falsos e intentos de phishing, y las carriers necesitaban proteger a sus clientes sin que la red se degradara.

 

El registro resuelve eso atando cada mensaje a una identidad de empresa verificada. Una vez que tu tráfico está registrado, las carriers saben quién lo manda. Por eso el tráfico registrado consigue mejor throughput y deliverability, mientras que el no registrado termina filtrado o directamente bloqueado.

 

¿Querés saber más? Mirá la explicación de Twilio acá.

 

¿Quién necesita registrarse, y cuándo?

Necesitás el registro A2P 10DLC si mandás SMS o MMS a números de Estados Unidos desde un número estadounidense de 10 dígitos. Ese es el caso puntual que cubre. Hay algunas situaciones que la gente suele confundir con esta:

 

  • Los números toll-free van por otro proceso. La verificación toll-free es un formulario aparte con su propia revisión, así que registrar una brand y una campaña acá no te la cubre.
  • Los short codes son un producto distinto, con su propia solicitud, un costo bastante más alto y plazos más largos.
  • Los mensajes a números fuera de Estados Unidos no caen bajo A2P 10DLC. Otros países tienen sus propias reglas, y algunos piden registrar el sender ID.
  • El tráfico de WhatsApp lo rige el proceso de aprobación de Meta, no este.

 

Sobre el timing: mientras estás construyendo no necesitás nada de esto. Twilio te da un número de prueba y créditos gratis para desarrollar. El registro se vuelve necesario cuando salís del plan de prueba y empezás a mandar a clientes reales. Lo práctico es armar la integración primero. Después arrancás el papeleo, cuando ya sabés qué programa de mensajería vas a describir en el formulario.

 

Para empezar

Explicaciones aparte, vamos a la Twilio Console a registrar la Brand y la Campaign. Tené en cuenta que para arrancar la verificación de campaña A2P 10DLC, tu cuenta tiene que estar fuera del plan gratuito o de prueba.

 

Andá a la consola de Twilio e iniciá sesión con tus credenciales.

 

Ya adentro del portal, andá a Messaging > Regulatory Compliance > Onboarding. Ahí te va a pedir que crees un Customer Profile, si todavía no tenés uno.

 

El Customer Profile es lo que Twilio usa para su KYC. Te pide información general de la empresa, datos de contacto y el EIN. Es el primer paso, y es obligatorio para poder crear una Brand a partir de ese Profile. Algunos de los campos que hay que completar:

 

Información general

  • Razón social de la empresa.
  • Domicilio de la empresa.
  • Código postal de la empresa.

 

Información del negocio

  • Tipo de empresa (Corporation, LLC, etc.).
  • Rubro: completalo bien, porque Twilio a veces verifica que los mensajes que mandás en una campaña coincidan con el rubro que declaraste
  • EIN.
  • URL del negocio: tiene que ser un sitio real, con datos de contacto y, ojalá, un formulario de contacto.

 

Información de contacto

  • Personas de contacto: rol, nombre completo, correo y teléfono
  • Correo de notificaciones: ahí llegan las novedades de Twilio y también los avisos de facturación, reportes de uso y demás.

 

Cuando completaste todo, el Customer Profile te tiene que quedar así:

 

 

El paso siguiente es registrar una Brand. Las Brands en Twilio se definen por 2 cosas: tu Customer Profile y el message throughput que necesitás, o sea los mensajes que procesás por segundo. Mirá el diagrama de abajo para ver qué tipo de brand te conviene

 

twilio-brand-types

 

Ya en la sección Brand del formulario, elegí la que mejor le va a tu caso de uso. Según el tipo de brand, Twilio te cobra un cargo único para registrarla. Ojo con esto: si el registro falla por cualquier motivo, por ejemplo datos mal cargados, y tenés que volver a registrarla, te vuelven a cobrar lo mismo.

 

 

La verificación de la brand puede tardar hasta 48 horas, y hay que esperar a que quede registrada para poder crear una campaña.

 

Con la brand aprobada, el último paso es crear la campaña que te habilita a mandar SMS a cualquier número de Estados Unidos. Podés crear todas las campañas que quieras para una misma brand, no hay límite. Yo te recomiendo hacerlo, porque después seguís el costo de cada una por separado en el panel de facturación.

 

Cómo elegir el caso de uso de tu campaña

El caso de uso que elegís le dice a las carriers qué tipo de programa de mensajería es este, y se chequea contra los mensajes de ejemplo que cargás. Elegir uno que no coincida con lo que mandás de verdad es un motivo frecuente de rechazo. Y también te puede hacer filtrar tráfico más adelante, ya con la campaña aprobada.

 

El desplegable trae un conjunto de categorías estándar. Las que más aparecen en la práctica:

 

  • Low Volume Mixed: varios tipos de mensaje con un volumen moderado. Es el default razonable para la mayoría de las pymes, y es el que elijo yo salvo que el proyecto pida otra cosa.
  • Mixed: lo mismo pero sin el techo de bajo volumen, para más throughput.
  • Customer Care: conversaciones de soporte, gestión de cuentas y seguimientos.
  • 2FA: códigos de un solo uso y verificación de login. Si es lo que hacés, elegilo en vez de esconderlo dentro de una campaña mixta.
  • Account Notification y Delivery Notification: avisos transaccionales como recordatorios de turno, estado de pedidos y alertas de envío.
  • Marketing: mensajería promocional. Es el que tiene las exigencias de consentimiento más estrictas, así que elegilo solo si de verdad tenés opt-in de marketing registrado.

 

Dos notas prácticas. Primero, podés registrar más de una campaña bajo la misma brand, y no hay límite. Separar programas de mensajería distintos en campañas propias hace que cada una le cierre al revisor. Y a su vez te deja ver los costos claros en el panel de facturación. Segundo, no elijas Marketing como cajón de sastre porque suena amplio. Que el caso de uso declarado sea más estricto que tus mensajes reales no es problema; que sea más laxo es justo lo que te hace rechazar.

 

El formulario de campaña tiene un montón de campos, así que vamos uno por uno. Te cuento desde mi experiencia cuáles son los más importantes (y cuáles me hicieron reenviar el formulario varias veces 😅)

 

 

  • A2P Brand: se completa solo, pero podés elegir qué brand se asocia a la campaña si tenés más de una.
  • Campaign use cases: es un desplegable con distintos propósitos de campaña, y solo podés elegir uno. En general la opción low-volume mixed es la que te sirve, salvo que busques algo muy específico como mandar OTP o mensajes 2FA, que tienen su propia opción
  • Messaging Service: los números 10DLC se asignan a ese messaging service
  • Campaign description: es uno de los campos más importantes, y de los que más rechazos generan. No lo confundas con una descripción interna para encontrar la campaña rápido; acá le tenés que contar a Twilio de qué se trata. Si tocás el botón Learn more que está debajo del campo, vas a ver ejemplos de textos que sí lograron la aprobación.

 

Vamos a la segunda parte del formulario:

 

 

  • Sample messages: hacen falta al menos 2. Es otro de los campos más sensibles en términos de compliance: tenés que especificar qué van a decir los mensajes que salgan por esa campaña. Normalmente se usan valores dinámicos como "Hola, {{firstName}}, recibimos tu llamada el {{date}}". Si solo pensás mandar 1 SMS genérico, poné 2 ejemplos del mismo mensaje redactados distinto. Lo más importante acá es que el ejemplo incluya cómo hace el usuario para darse de baja. Más abajo vemos cuáles son las palabras de opt-out, pero conviene referenciarlas en los mensajes de ejemplo. Twilio presta mucha atención a cómo le avisás al usuario que puede cancelar tus SMS.
  • Message contents: las opciones son bastante directas. Si incluís links embebidos, el equipo de revisión te puede pedir información adicional, aunque nunca tuve que mandar links por SMS, así que no te lo puedo asegurar al 100%.

 

Vamos a la última parte del formulario:

 

 

Dejé a propósito la parte de "Did you know?".

 

El campo de cómo consienten los usuarios finales en recibir mensajes es probablemente el más importante de todo el formulario. Tenés que ser muy descriptivo en cómo aceptan recibir tus SMS: si completaron un formulario en tu CRM, si llamaron a tu oficina, o cualquier otro escenario. A mí me rechazaron unas 3 veces por este campo en los primeros días de la normativa. De nuevo, en el link de Learn more vas a encontrar ejemplos de textos aprobados que te sirven de inspiración. Subir una captura pública de cómo capturás el teléfono de tus clientes ayuda bastante a que aprueben la campaña. Ojo: si la subís a tu propio servidor en vez de a un storage, conviene usar el servidor donde está el sitio de la empresa. Así Twilio ve que coincide con el resto de la información que cargaste.

 

Por último, Opt-in Keywords y Message son ejemplos opcionales. Yo nunca los completé, porque Twilio ya manda una respuesta automática estándar para esos casos.

 

Con todo listo, tocás Submit y arranca el proceso de revisión. Suele tardar entre 5 y 7 días hábiles, y la respuesta no llega por correo ni por SMS. Tenés que entrar a la consola y chequear el estado de la campaña cada tanto.

 

Palabras de opt-out y compliance continuo

La aprobación no es el final. Toda campaña registrada tiene que respetar las palabras de opt-out que exigen las carriers, y Twilio maneja las estándar por vos en los números 10DLC registrados.

 

  • Baja: STOP, STOPALL, UNSUBSCRIBE, CANCEL, END, QUIT. Twilio bloquea los mensajes siguientes a ese número y responde con una confirmación.
  • Alta de nuevo: START, YES, UNSTOP.
  • Ayuda: HELP, INFO. Twilio responde con tu texto de ayuda y los datos de contacto.

 

Acá hay una trampa que conviene conocer, porque pega en producción. Como Twilio intercepta estas palabras a nivel plataforma, tu aplicación puede no recibir nunca el mensaje entrante. Twilio deja de entregar a ese número, pero en tu base el contacto sigue marcado como suscripto. Tu sistema sigue encolando mensajes que no llegan a ningún lado, y tus reportes muestran envíos que nunca aterrizaron. Si guardás el estado de suscripción en tu propia base, escuchá el opt-out en el webhook entrante y replicalo, o reconciliá contra Twilio cada tanto.

 

Es también el motivo por el que los mensajes de ejemplo del formulario tienen que referenciar el opt-out. Una línea tan simple como "Reply STOP to unsubscribe" es lo que busca el revisor, y su ausencia es un rechazo fácil.

 

Por qué rechazan las campañas

En todas las campañas que registré, los rechazos vienen casi siempre de un puñado de cosas. Más o menos en el orden en que me las crucé:

 

  • La descripción del consentimiento es vaga. Esta es la grande. "Los usuarios se registran en nuestro sitio" no alcanza. Nombrá el lugar y el momento exactos en que se captura el teléfono, y qué aceptó la persona ahí.
  • La descripción de la campaña parece una etiqueta interna. Es la descripción de tu programa de mensajería para un revisor humano, no un nombre para que vos encuentres la campaña después.
  • Los mensajes de ejemplo no tienen texto de opt-out. Ya lo vimos arriba, y se arregla fácil.
  • Los mensajes de ejemplo no coinciden con el caso de uso declarado. Copy promocional bajo un caso de uso transaccional es una alarma inmediata.
  • La URL del negocio no aguanta. Tiene que resolver, parecerse a la empresa que registraste y tener datos de contacto. Un dominio estacionado o un link sin forma de contactar a nadie no pasa.
  • El rubro no coincide con los mensajes. Twilio sí chequea esto contra lo que la campaña dice que manda.

 

Volver a registrar una brand después de una submission fallida se cobra de nuevo. Así que conviene ir lento y específico en la primera pasada, en vez de rápido y genérico.

 

Conclusión

Eso es todo por ahora. Si ya tenés el SDK andando en tu aplicación y solo estás esperando que aprueben el formulario, de tu lado no hace falta nada más. Acordate de mover los números 10DLC al messaging service que indicaste en la campaña una vez aprobada, porque si no los SMS tampoco salen.

 

Si te aprobaron la campaña y todavía te falta armar el envío, escribí una guía completa de eso: enviar SMS con PHP y Twilio, con código que podés llevarte directo a un proyecto.

 

Acordate de seguirme en mis redes, que están en el header y en el footer.

 

¡Gracias!

-Gonza

6644
Twilio
Publicado el 8 de abril de 2024

¿Estás construyendo algo así sobre Twilio? Ayudo a empresas a diseñar y operar estos sistemas en producción. Conoce mi servicio de consultoría y desarrollo Twilio.

Descubre cuánto te está costando tu sistema de comunicaciones.

Obtén la auditoría de comunicaciones

Posts relacionados

Cómo enviar SMS con Laravel y Twilio en producción

5 de abril de 2024
IntroducciónEn un capítulo anterior armé una guía con mis consejos para verificar tu número 10DLC en Twilio. Lo que nunca hice fue la guía de... Leer más

Cómo integrar Google Calendar con Laravel paso a paso

3 de septiembre de 2024
Cómo integrar Google Calendar en tu app LaravelIntegrar Google Calendar en tu aplicación Laravel te cambia el juego, sobre todo si necesitás manejar eventos, agendar... Leer más

Schema::getColumnListing en Laravel: inserts sin romper

15 de mayo de 2024
IntroducciónEn un post anterior hablé sobre usar queries de Eloquent o el DB Facade para hacer un insert masivo de registros, que podés leer acá.... Leer más

Automatizar respuestas de WhatsApp con Twilio y Laravel

12 de mayo de 2025
IntroducciónTu equipo responde exactamente las mismas preguntas todos los días, por WhatsApp, mail y DMs: "¿Cuál es la dirección?""¿Abren los feriados?""¿Cuál es la política de devoluciones?""¿Dan... Leer más