Skip to main content
POST
/
api
/
companies
/
{companyId}
/
blocked-contacts
/
import
curl -X POST https://api.disparador.com/api/companies/1/blocked-contacts/import \
  -H "Content-Type: application/json" \
  -H "X-Access-Token: seu-access-token" \
  -d '{
    "phoneNumbers": [
      "5511999887766",
      "5511888776655",
      "5511777665544"
    ],
    "reason": "Importação lista opt-out"
  }'
{
  "success": true,
  "totalProvided": 3,
  "successfullyBlocked": 3,
  "alreadyBlocked": 0,
  "failed": 0
}
Ideal para importar listas de opt-out ou bloqueios em massa.

Headers

X-Access-Token
string
required
Token de acesso da empresa
Content-Type
string
required
application/json

Path Parameters

companyId
number
required
ID da empresa (deve corresponder ao token)

Body

phoneNumbers
array
required
Lista de números de telefone para bloquear
Limite máximo: 1000 números por importação
reason
string
Motivo do bloqueio para todos os númerosExemplos:
  • “Importação lista opt-out”
  • “LGPD - Solicitação de exclusão”
  • “Lista de números inválidos”
curl -X POST https://api.disparador.com/api/companies/1/blocked-contacts/import \
  -H "Content-Type: application/json" \
  -H "X-Access-Token: seu-access-token" \
  -d '{
    "phoneNumbers": [
      "5511999887766",
      "5511888776655",
      "5511777665544"
    ],
    "reason": "Importação lista opt-out"
  }'

Response

success
boolean
Indica se a operação foi bem-sucedida
error
string
Mensagem de erro (quando falha)
totalProvided
number
Total de números fornecidos
successfullyBlocked
number
Quantidade de números bloqueados com sucesso
alreadyBlocked
number
Quantidade de números que já estavam bloqueados
failed
number
Quantidade de números que falharam
failedNumbers
object
Mapa de números que falharam com seus respectivos motivos
{
  "success": true,
  "totalProvided": 3,
  "successfullyBlocked": 3,
  "alreadyBlocked": 0,
  "failed": 0
}

Processamento em Lote

Para listas com mais de 1000 números:
async function importLargeBlocklist(allNumbers, companyId, token, reason) {
  const batchSize = 1000;
  const results = {
    totalImported: 0,
    totalAlreadyBlocked: 0,
    totalInvalid: 0
  };
  
  // Dividir em lotes
  for (let i = 0; i < allNumbers.length; i += batchSize) {
    const batch = allNumbers.slice(i, i + batchSize);
    
    const response = await fetch(
      `https://api.disparador.com/api/companies/${companyId}/blocked-contacts/import`,
      {
        method: 'POST',
        headers: {
          'Content-Type': 'application/json',
          'X-Access-Token': token
        },
        body: JSON.stringify({
          phoneNumbers: batch,
          reason: reason
        })
      }
    );
    
    const result = await response.json();
    if (result.success) {
      results.totalImported += result.successfullyBlocked;
      results.totalAlreadyBlocked += result.alreadyBlocked;
      results.totalInvalid += result.failed;
    }
    
    // Aguardar um pouco entre lotes para não sobrecarregar
    await new Promise(resolve => setTimeout(resolve, 1000));
  }
  
  return results;
}

Boas Práticas

Validação Prévia

Valide os números antes de importar para reduzir erros

Motivo Descritivo

Sempre forneça um motivo claro para facilitar auditoria

Lotes Menores

Use lotes de 500-1000 números para melhor performance

Monitoramento

Acompanhe os resultados para identificar problemas
I