Skip to main content
PUT
/
api
/
campaigns
/
{id}
/
cancel
curl -X PUT https://api.disparador.com/api/campaigns/123/cancel \
  -H "X-Access-Token: seu-access-token"
{
  "id": 123,
  "name": "Campanha de Vendas",
  "description": null,
  "status": "CANCELLED",
  "type": "TEXT",
  "createdAt": "2024-01-20T10:00:00",
  "scheduledFor": null,
  "startedAt": "2024-01-20T10:01:00",
  "completedAt": "2024-01-20T17:00:00",
  "pausedAt": null,
  "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
}
Cancela uma campanha de forma permanente. Esta ação não pode ser desfeita.
O cancelamento é irreversível. Uma campanha cancelada não pode ser retomada.

Headers

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

Path Parameters

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

Response

Retorna os dados completos finais da campanha após cancelamento.

Campos Principais

id
number
ID da campanha
name
string
Nome da campanha
description
string
Descrição da campanha
status
string
Novo status (será “CANCELLED”)
type
string
Tipo da campanha (TEXT, MEDIA, POLL)
createdAt
string
Data/hora de criação
startedAt
string
Data/hora que iniciou (se aplicável)
completedAt
string
Data/hora do cancelamento (mesmo valor de cancelledAt)

Estatísticas Finais

totalContacts
number
Total de contatos que estavam na campanha
sentContacts
number
Total de mensagens enviadas antes do cancelamento
failedContacts
number
Total de falhas antes do cancelamento
pendingContacts
number
Contatos que não foram processados
progressPercentage
number
Percentual de progresso no momento do cancelamento
successRate
number
Taxa de sucesso final

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": "CANCELLED",
  "type": "TEXT",
  "createdAt": "2024-01-20T10:00:00",
  "scheduledFor": null,
  "startedAt": "2024-01-20T10:01:00",
  "completedAt": "2024-01-20T17:00:00",
  "pausedAt": null,
  "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
}

Quando Cancelar

Uma campanha pode ser cancelada quando está nos seguintes status:

SCHEDULED

Cancelar antes de iniciar

ACTIVE

Interromper envio em andamento

PAUSED

Desistir de campanha pausada

DRAFT

Excluir rascunho não utilizado

Não Pode Cancelar

COMPLETED

Já foi concluída

CANCELLED

Já está cancelada

Consequências do Cancelamento

  1. Parada imediata - Nenhuma nova mensagem será enviada
  2. Irreversível - Não é possível retomar uma campanha cancelada
  3. Estatísticas preservadas - Dados de envio são mantidos para consulta
  4. Contatos não notificados - Destinatários restantes não receberão a mensagem

Alternativas ao Cancelamento

Antes de cancelar, considere:
// Função para avaliar se deve pausar ou cancelar
async function evaluateCampaignAction(campaignId, accessToken) {
  const response = await fetch(
    `https://api.disparador.com/api/campaigns/${campaignId}`,
    {
      headers: { 'X-Access-Token': accessToken }
    }
  );
  
  const campaign = await response.json();
  const progress = campaign.progressPercentage;
  
  if (progress < 10) {
    console.log('Menos de 10% enviado - considere cancelar');
    return 'CANCEL';
  } else if (progress < 50) {
    console.log('Entre 10-50% enviado - considere pausar e revisar');
    return 'PAUSE';
  } else {
    console.log('Mais de 50% enviado - considere deixar completar');
    return 'CONTINUE';
  }
}

Auditoria

Todos os cancelamentos são registrados com:
  • Data e hora exata (completedAt)
  • Estado da campanha no momento
  • Estatísticas finais preservadas
  • Histórico completo para consulta futura
I