Desarrolladores

PUT/tcr/v2/campaign/{campaignId}

Actualizar una campaña de mensajería

Revise el contenido de la campaña, verifique el resultado guardado y mantenga explícitas las solicitudes de revisión y las decisiones de renovación.

En esta página
  1. Corregir una campaña sin crear otro registro
  2. Elegir los campos que realmente han cambiado
  3. Enviar una corrección específica
  4. Volver a consultar la campaña
  5. Gestionar las restricciones y los resultados inciertos

Corregir una campaña sin crear otro registro

Utilice esta ruta para modificar la descripción, los ejemplos de mensajes, la explicación del consentimiento o las características de contenido admitidas de una campaña existente. Conserve el ID de la campaña y su marca y caso de uso actuales. Crear un nuevo registro no es el mecanismo de reintento para corregir una campaña existente.

Autentíquese con una cuenta de API habilitada mediante HTTPS desde una dirección IP de origen permitida. Solo se puede acceder a una campaña que pertenezca a esa cuenta. Consulte su estado actual antes de preparar los cambios; las campañas vencidas no se pueden actualizar mediante este flujo de trabajo.

curl --silent --show-error --fail-with-body --user "$API_USER:$API_PASSWORD" \
  "https://api.multitel.net/tcr/v2/campaign/$CAMPAIGN_ID"

Elegir los campos que realmente han cambiado

Prepare campaign-update.json con los cambios admitidos. El portal actual envía únicamente los campos de la campaña que han cambiado y no envía brandId, usecase, campaignId ni información de estado exclusiva de las respuestas. Las actualizaciones directas mediante la API también utilizan un objeto JSON con los campos, no la estructura contenedora changes/version del portal.

Campos de actualización de la campaña
CamposQué proporcionar
description, messageFlowUna descripción precisa del servicio y de cómo las personas dan su consentimiento, reciben mensajes y retiran su consentimiento. Cada campo admite 40–4096 caracteres.
sample1–sample5Ejemplos realistas de esta campaña, con 20–1024 caracteres por ejemplo no vacío. Mantenga la cantidad de ejemplos exigida por el caso de uso para el que se ha obtenido la habilitación; no envíe mensajes ajenos a la campaña.
helpMessage, optinMessage, optoutMessageLas respuestas pertinentes dirigidas a los destinatarios, de hasta 1024 caracteres. Cuando se exija, cumpla el mínimo de 20 caracteres y explique el servicio real. Revise los requisitos de consentimiento vigentes antes de vaciar un campo.
optinKeywords, optoutKeywords, helpKeywordsPalabras clave separadas por comas, sin espacios, con un máximo de 255 caracteres. Mantenga la coherencia entre las respuestas y el tratamiento operativo de las palabras clave.
privacyPolicyLink, termsAndConditionsLinkURL públicas pertinentes, de hasta 2048 caracteres, que describan las prácticas reales de este servicio.
embeddedLinkSampleUn enlace representativo de los que contendrán los mensajes, de hasta 255 caracteres.
numberPool, embeddedLink, embeddedPhone, ageGated, directLendingLas características reales de la campaña como valores booleanos de JSON. Utilice false, no la cadena "false", al desactivar una de ellas.
autoRenewalEl esquema de la API pública admite este valor booleano de JSON, aunque el editor habitual de contenido de campañas del portal no lo muestra. Desactivar la renovación no cancela un compromiso mínimo existente ni elimina los cargos ya adeudados.
resellerIdEl esquema también permite asociar un revendedor. Esta opción queda fuera del formulario habitual de corrección de contenido del portal. No utilice este campo para transferir una campaña entre clientes ni suponga que la API configurará el servicio del operador para un revendedor diferente.

El esquema de actualización no ofrece brandId, usecase, subscriberOptin, subscriberOptout ni subscriberHelp como campos modificables. No copie en una actualización el cuerpo completo de una solicitud de creación de campaña. Consulte la habilitación actual al revisar los requisitos de los mensajes.

Enviar una corrección específica

Este ejemplo describe, a modo ilustrativo, un servicio de recordatorios de citas. Adáptelo al servicio y al flujo de consentimiento reales de la campaña antes de utilizarlo.

{
  "description": "Appointment reminders requested by customers of the registered business.",
  "sample1": "Example business: Your requested appointment reminder is ready. Reply STOP to opt out."
}
curl --silent --show-error --fail-with-body --user "$API_USER:$API_PASSWORD" \
  --request PUT \
  --header 'Content-Type: application/json' \
  --header "Idempotency-Key: $IDEMPOTENCY_KEY" \
  --data-binary @campaign-update.json \
  "https://api.multitel.net/tcr/v2/campaign/$CAMPAIGN_ID"

Mantenga la misma clave y exactamente el mismo método, ruta, consulta y bytes del cuerpo para un mismo envío previsto. Si cambia el contenido, se requiere una solicitud revisada por separado; no cambie las claves a ciegas después de que se agote el tiempo de espera. Una solicitud completada puede volver a devolver un error almacenado en caché, y un duplicado que aún se esté procesando puede devolver 409 con Retry-After.

Volver a consultar la campaña

HTTP 200 devuelve directamente un objeto JSON de la campaña. Verifique campaignId y, a continuación, consulte la misma campaña mediante GET y compare los campos previstos. Guardar correctamente no solicita por sí mismo otra revisión del operador, no cambia las asignaciones de números, no activa el envío ni envía un mensaje.

El portal comprueba la versión del formulario antes de guardar y vuelve a consultar la campaña después. El punto de acceso público PUT no exige que coincida esa versión del portal: coordine las ediciones simultáneas. Una clave de idempotencia no detecta la actualización realizada por otro editor.

Si el portal muestra un rechazo de revisión pendiente de resolver, corrija primero el contenido y después utilice la acción independiente para solicitar una revisión, cuando esté disponible. Esa acción comprueba la campaña actual en producción y su estado de uso compartido. Guardar el contenido por sí solo no ejecuta esa acción, y la existencia de un ID de campaña no acredita su aprobación.

Las actualizaciones habituales de campañas mediante PUT no generan un débito independiente por registro de campaña en el servicio actual. Siguen aplicándose las cuotas mensuales existentes, los compromisos mínimos, el alquiler de números y el consumo de mensajes. Para conocer las tarifas de campaña configuradas actualmente, consulte las tarifas de las campañas.

Gestionar las restricciones y los resultados inciertos

Para HTTP 400, lea el error del campo y compruebe las longitudes, el texto de consentimiento y el estado de la campaña. Para 401, 403 o 404, compruebe las credenciales de la API, la IP de origen permitida y la titularidad. Para 429, respete Retry-After. Ante un 500, 502 o una solicitud interrumpida, conserve el ID de la campaña y cualquier requestId y, a continuación, contraste el registro existente con el resultado esperado antes de realizar otro envío.

La copia local del estado depende del cuerpo devuelto. Una respuesta parcial no vacía puede omitir campos anteriores, incluidos los metadatos de renovación; una respuesta vacía puede mantener valores obsoletos. Verifique el resultado completo de GET en lugar de considerar que el éxito por sí solo demuestra que se han conservado todos los campos. Comunique las diferencias sin resolver al servicio de asistencia. Esta ruta no actualiza de forma atómica las asignaciones de operadores ni ofrece una acción general de recuperación de la activación del operador.