Skip to main content
PUT
/
api
/
campaigns
/
{id}
/
pause
curl -X PUT https://api.disparador.com/api/campaigns/123/pause \
  -H "X-Access-Token: seu-access-token"
{
  "id": 123,
  "name": "Campanha de Vendas",
  "description": null,
  "status": "PAUSED",
  "type": "TEXT",
  "createdAt": "2024-01-20T10:00:00",
  "scheduledFor": null,
  "startedAt": "2024-01-20T10:01:00",
  "completedAt": null,
  "pausedAt": "2024-01-20T15:30:00",
  "totalContacts": 500,
  "sentContacts": 234,
  "failedContacts": 5,
  "pendingContacts": 261,
  "progressPercentage": 46.8,
  "successRate": 97.86,
  "estimatedCompletion": null,
  "messageContent": "Aproveite nossa promoção especial!",
  "mediaType": null,
  "mediaUrl": null,
  "fileName": null,
  "evolutionInstance": "whatsapp-01",
  "minInterval": 5,
  "maxInterval": 10,
  "notificationPhone": null,
  "pollData": null,
  "evolutionConfig": {
    "id": 1,
    "name": "WhatsApp Principal",
    "url": "https://evolution-api.exemplo.com",
    "instance": "whatsapp-01"
  },
  "message": null
}
Pausa uma campanha ativa para retomá-la posteriormente. Útil para ajustes ou correções durante o envio.

Headers

X-Access-Token
string
required
Token de acesso da empresa

Path Parameters

id
number
required
ID da campanha a ser pausada
curl -X PUT https://api.disparador.com/api/campaigns/123/pause \
  -H "X-Access-Token: seu-access-token"

Response

Retorna os dados completos atualizados da campanha após pausar.

Campos Principais

id
number
ID da campanha
name
string
Nome da campanha
description
string
Descrição da campanha
status
string
Novo status (será “PAUSED”)
type
string
Tipo da campanha (TEXT, MEDIA, POLL)
pausedAt
string
Data/hora em que foi pausada

Estatísticas

totalContacts
number
Total de contatos na campanha
sentContacts
number
Mensagens já enviadas
failedContacts
number
Mensagens que falharam
pendingContacts
number
Mensagens ainda pendentes
progressPercentage
number
Percentual de progresso
successRate
number
Taxa de sucesso atual

Outros Campos

Todos os demais campos da estrutura CampaignResponse também são retornados, incluindo:
  • messageContent
  • mediaType
  • mediaUrl
  • evolutionInstance
  • evolutionConfig
  • etc.
message
string
Mensagem de erro (apenas em caso de falha)
{
  "id": 123,
  "name": "Campanha de Vendas",
  "description": null,
  "status": "PAUSED",
  "type": "TEXT",
  "createdAt": "2024-01-20T10:00:00",
  "scheduledFor": null,
  "startedAt": "2024-01-20T10:01:00",
  "completedAt": null,
  "pausedAt": "2024-01-20T15:30:00",
  "totalContacts": 500,
  "sentContacts": 234,
  "failedContacts": 5,
  "pendingContacts": 261,
  "progressPercentage": 46.8,
  "successRate": 97.86,
  "estimatedCompletion": null,
  "messageContent": "Aproveite nossa promoção especial!",
  "mediaType": null,
  "mediaUrl": null,
  "fileName": null,
  "evolutionInstance": "whatsapp-01",
  "minInterval": 5,
  "maxInterval": 10,
  "notificationPhone": null,
  "pollData": null,
  "evolutionConfig": {
    "id": 1,
    "name": "WhatsApp Principal",
    "url": "https://evolution-api.exemplo.com",
    "instance": "whatsapp-01"
  },
  "message": null
}

Regras de Negócio

  • Apenas campanhas com status ACTIVE podem ser pausadas
  • Campanhas agendadas devem ser canceladas, não pausadas
  • A pausa é instantânea, mas mensagens já em fila podem ser enviadas
  • Não há limite para quantas vezes uma campanha pode ser pausada

Quando Pausar

Correções Urgentes

Detectou erro na mensagem ou lista de contatos

Ajustes de Horário

Evitar envios em horários inadequados

Problemas Técnicos

Issues com WhatsApp ou Evolution API

Solicitação Cliente

Cliente pediu para parar temporariamente

Exemplo de Fluxo

// Pausar campanha se detectar muitas falhas
async function monitorAndPauseIfNeeded(campaignId, accessToken) {
  const response = await fetch(`https://api.disparador.com/api/campaigns/${campaignId}`, {
    headers: { 'X-Access-Token': accessToken }
  });
  
  const campaign = await response.json();
  
  // Se mais de 20% de falhas, pausar
  if (campaign.sentContacts > 0) {
    const failureRate = (campaign.failedContacts / campaign.sentContacts) * 100;
    
    if (failureRate > 20 && campaign.status === 'ACTIVE') {
      console.warn(`Alta taxa de falha detectada: ${failureRate.toFixed(2)}%`);
      
      // Pausar campanha
      const pauseResponse = await fetch(
        `https://api.disparador.com/api/campaigns/${campaignId}/pause`,
        {
          method: 'PUT',
          headers: { 'X-Access-Token': accessToken }
        }
      );
      
      if (pauseResponse.ok) {
        const pausedCampaign = await pauseResponse.json();
        console.log('Campanha pausada automaticamente devido a alta taxa de falhas');
        console.log(`Pausada em: ${pausedCampaign.pausedAt}`);
      }
    }
  }
}

Próximos Passos

I