## Visión general

La **Calculadora de costo de envío** muestra cuánto costará una campaña de WhatsApp **antes** de
enviarla y cuánto costó **después**. El cálculo se basa en la **tarifa por mensaje** que Meta cobra
por **categoría de plantilla** (marketing, utilidad y autenticación) y en el **país** del
destinatario, convertida de **USD** a **BRL** con la cotización del día.

> Solo el **WhatsApp Cloud** lo cobra Meta. Las bandejas de **WhatsApp Web** no tienen costo de Meta
> por mensaje, por lo que aparecen como **sin costo** (`billable: false`).

La plataforma usa este mismo número en dos lugares: la **calculadora** (una simulación "qué pasaría
si") y la **estimación de costo del público** que aparece en el compositor de la campaña.

## Requisitos previos

- Acceso al módulo **Campañas**.
- Para costo cobrado: una **bandeja de entrada de WhatsApp Cloud** conectada (Web no genera costo de
  Meta).
- La **categoría de la plantilla** definida en la campaña — **marketing**, **utilidad** o
  **autenticación**. La categoría es la que determina la tarifa por mensaje.

## Paso a paso

1. Abre **Campañas** en la barra lateral.
2. Abre la **Calculadora de envío** (botón de la calculadora en la pantalla de campañas).
3. Elige el **país** de los destinatarios en el selector (p. ej., BR, US, MX...).
4. Para cada **categoría** (marketing, utilidad, autenticación), indica la **cantidad** de mensajes.
5. Por fila, revisa la **tarifa por mensaje** (en USD) y el **total en BRL**.
6. Verifica el **costo total estimado** destacado (USD y BRL) y el número de mensajes **cobrables**.

En el compositor de la campaña, al definir la **audiencia** y la **categoría**, la plataforma también
muestra el **costo estimado** del público resuelto (etiquetas, contactos específicos, segmentos
guardados o todos), ya en BRL.

## Configuración y opciones

- **Tarifas por categoría (USD)**: cada categoría tiene una tarifa por mensaje por país, según la
  tabla oficial de Meta de 2026.
- **Conversión USD → BRL**: usa la cotización en vivo del día (caché de ~1h). Usa **Actualizar** para
  obtener una cotización nueva ignorando el caché, o **Ajustar** para indicar manualmente una tasa
  "qué pasaría si".
- **Origen de la cotización**: el distintivo indica si la tasa es **en vivo**, **estimada** (fallback
  cuando la cotización no está disponible) o **manual**.
- **Tarifa editable por el administrador (override)**: Meta **no tiene API de precios**, así que un
  administrador puede **editar la tarifa** por categoría/país con el precio real negociado. La fila
  recibe el distintivo **personalizada**. Dejar el campo de la tarifa **en blanco y guardar**
  **restaura** la tarifa oficial/sincronizada.
- **Sincronizar (oficial)**: lee la **tabla de tarifas publicada por Meta** (el archivo CSV "Rates in
  USD" de la página de precios para desarrolladores) y actualiza las tarifas por país y categoría. Las
  filas actualizadas pasan a mostrar origen **sincronizada**. Un **override del administrador sigue
  ganando** sobre la tarifa sincronizada — sincronizar no borra el precio que negociaste. Si la lectura
  falla, **no se cambia nada**: la tabla editable/base sigue siendo la válida.
- **Fuente alternativa de tarifas**: si prefieres alimentar las tarifas por tu cuenta, apunta la
  variable de entorno `WHATSAPP_PRICING_SOURCE_URL` a un endpoint **JSON o CSV** con la tarifa por país
  y categoría. La plataforma usa esa fuente en lugar de la página oficial.
- **Estimación de costo del público (en el compositor)**: al elegir audiencia + categoría, la
  plataforma resuelve los contactos con teléfono y devuelve el **costo estimado** en BRL y si es
  **cobrable**.
- **Costo estimado vs. costo real en la campaña**: la campaña guarda el **costo estimado**
  (`estimated_cost`), el **costo real** (`actual_cost`) y la **moneda** (`currency`, por defecto BRL).
  El costo estimado se registra al crear (solo Cloud); el costo real se acumula a medida que se
  contabilizan los mensajes cobrables (entregados/leídos/respondidos).

## Casos de uso

- **Presupuestar una promoción**: simula 10.000 mensajes de marketing para Brasil y revisa el total
  en BRL antes de aprobar.
- **Comparar categorías**: observa la diferencia de precio entre marketing, utilidad y autenticación
  para elegir el mejor formato.
- **Validar el cobro**: registra el precio real negociado con Meta en la tarifa editable y compara el
  **costo estimado** con el **costo real** al final de la campaña.

## Consejos, límites y buenas prácticas

- **WhatsApp Web no tiene costo de Meta**: las líneas y campañas de Web aparecen como **sin costo**
  (`billable: false`) y no suman al presupuesto.
- **Restaurar la tarifa oficial**: para deshacer un override, deja el campo de la tarifa **en blanco**
  y guarda — así vuelve a la tarifa oficial/sincronizada.
- **Tarifa = precio real**: como Meta no expone precios por API, mantén la tarifa editable alineada
  con tu contrato para que la estimación sea fiel a la factura.
- **Cotización**: si la tasa está marcada como **estimada**, es un fallback — actualiza para obtener
  la cotización en vivo antes de cerrar un presupuesto.

## Solución de problemas

- **El costo aparece en R$ 0 o ausente**: la campaña es de **WhatsApp Web** (sin cobro de Meta) **o**
  el público es muy grande y superó el límite de estimación (más de ~5.000 contactos), en cuyo caso la
  estimación se omite para no bloquear la creación — el **costo real** igual se contabiliza durante el
  envío.
- **La tabla no se sincroniza**: el mensaje dice **por qué** — la fuente respondió con error, no se
  pudo acceder, o respondió sin tarifas legibles. En todos los casos la plataforma **mantiene** la
  tabla editable/base como fuente de verdad. Si persiste, apunta `WHATSAPP_PRICING_SOURCE_URL` a tu
  propio endpoint JSON/CSV o ajusta la tarifa manualmente.
- **Sincronicé y la tarifa no cambió**: existe un **override del administrador** para ese país y
  categoría — el override gana sobre la tarifa sincronizada. Deja el campo en blanco y guarda para
  restaurarla.
- **Cotización marcada como "estimada"**: la cotización en vivo no estaba disponible; usa
  **Actualizar** o indica una tasa **manual**.

## Ver también

- [Campaña de WhatsApp para listas de contactos](/hc/ajuda/articles/campaigns-whatsapp-campaign-es)
- [Plantillas HSM y variables](/hc/ajuda/articles/campaigns-templates-hsm-variaveis-es)
- [Visión general de Campañas](/hc/ajuda/articles/campaigns-overview-es)