Changelog

API Changelog

Cada cambio que un integrador puede notar, con fecha. Dentro de /v1 la API solo cambia por adición.

← Volver a la documentaciónPolítica de versionado y obsolescencia

Números de prueba sandbox, catálogo de errores, versionado

  • Nuevo: con una clave sandbox, +212600000002 falla, +212600000003 no es entregable, +212600000004 está dado de baja (403 OPTED_OUT) y +212600000005 nunca recibe acuse — cada uno con su webhook.
  • Corregido: el acuse simulado de una clave sandbox salía con el nombre de evento message.message.delivered; ahora es message.delivered.
  • Política de versionado: /v1 solo cambia por adición; una retirada se anuncia con 12 meses de antelación, con las cabeceras Deprecation y Sunset en la ruta afectada.
  • Webhooks: GET /v1/webhooks/logs y POST /v1/webhooks/logs/{log_id}/replay para leer y reenviar una entrega.
  • Plantillas de WhatsApp: carruseles y botones FLOW en POST /v1/templates; una revisión automática de EnvoiSMS antes de Meta (TEMPLATE_PENDING_REVIEW, TEMPLATE_REJECTED_BY_REVIEW).
  • Campañas de WhatsApp: template_variables (_header_media_url, _button_<i>, "static:…") y consent_attested, obligatorio para una plantilla de marketing (CONSENT_ATTESTATION_REQUIRED).
  • Una ruta errónea habitual (/v1/sms, /v1/send…) responde 404 indicando la correcta.

WhatsApp en el extranjero

  • Un mensaje de WhatsApp al extranjero se factura según el mercado Meta del destinatario.
  • Nuevo 429 OTP_COUNTRY_PAUSED: códigos a un país fuera de Marruecos suspendidos durante el día cuando se confirman muy pocos.
  • Una clave API puede subir un medio para un envío (POST /v1/whatsapp/media/upload); los demás cambios de WhatsApp siguen reservados al panel.

Sender ID no registrado

  • SENDER_ID_NOT_REGISTERED ya no se devuelve: un Sender ID personalizado no registrado se envía automáticamente con la tarifa estándar.

Claves sandbox

  • Una clave sandbox simula todo el flujo de verificación (send, resend, check) y la búsqueda de número, sin facturar nada; se devuelve sandbox_code.

Idempotencia, webhooks firmados v2, búsqueda de número

  • Cabecera Idempotency-Key en POST /v1/messages y /v1/messages/bulk.
  • X-EnvoiSMS-Signature-256 (con marca de tiempo, contra la repetición) en cada webhook; la antigua X-EnvoiSMS-Signature se sigue enviando.
  • GET /v1/lookup/{number}: validez, país y operador de un número.

API v1 estable

  • SMS a operadores marroquíes y WhatsApp Business, cascada WhatsApp → SMS, webhooks de entrega firmados.