C2S Leads

Documentação completa da API — versão HTML estática (sem JavaScript). Também disponível em /llms-full.txt e /openapi.json.

Contact2Sale (C2S) API — Documentação de Integração

Referência completa dos endpoints da API de integração da Contact2Sale (C2S CRM). Base URL: https://api.contact2sale.com/integration. Autenticação via token no header Authorization (ou Authentication).

Site: https://docs-api-leads.c2sapp.com

Autenticação

Todas as requisições exigem um token gerado dentro do C2S, enviado no header Authorization: Bearer {token} (preferencial) ou Authentication: {token}. Falha de autenticação retorna {"error":"not_authorized"} com status 403.


Informações Gerais

Retorna informações da empresa autenticada.

Informações da Empresa

GET https://api.contact2sale.com/integration/me

Retorna informações da empresa autenticada e suas sub-empresas.

Headers

Key Value Descrição
Authorization Bearer {token} Token de autenticação (preferencial)
Authentication {token} Header alternativo para o mesmo token

Response esperado — 200

{
  "company_name": "Empresa Exemplo",
  "company_id": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6",
  "sub_companies": [
    {
      "company_id": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6",
      "company_name": "Empresa Exemplo"
    },
    {
      "company_id": "d6c5b4a3f2e1d0c9b8a7f6e5d4c3b2a1",
      "company_name": "Empresa Exemplo - Filial 2"
    }
  ]
}

Leads

Endpoints para criação, atualização, encaminhamento, tags, interação e fechamento de leads.

Listar Leads

GET https://api.contact2sale.com/integration/leads

Lista leads da empresa autenticada com filtros e paginação.

Headers

Key Value Descrição
Authorization Bearer {token} Token de autenticação (preferencial)
Authentication {token} Header alternativo para o mesmo token

Parâmetros

Nome Tipo Obrigatório Descrição
page integer Não Número da página
perpage integer Não Itens por página (máximo 50)
sort string Não Campo de ordenação. Aceita created_at, updated_at. Prefixo - para DESC
last_update string Não Filtro por datetime ISO 8601. Retorna leads atualizados desde esta data
created_gte string Não Leads criados a partir desta data (inclusive)
created_lt string Não Leads criados antes desta data
updated_gte string Não Leads atualizados a partir desta data (inclusive)
updated_lt string Não Leads atualizados antes desta data
status string Não Filtrar por status: novo, em_negociacao, convertido, negocio_fechado, arquivado, resgatado, pendente, recusado, finalizado
tags string Não Nomes de tags separados por vírgula
phone string Não Filtrar pelo telefone do cliente
email string Não Filtrar pelo email do cliente
first_message boolean Não Incluir primeira mensagem na resposta
custom_attributes boolean Não Incluir atributos customizados na resposta
from_hierarchy_company boolean Não Se true, inclui no lead o campo from_hierarchy_company com o nome da hierarquia (empresa) que gerou o lead. Retorna null caso a hierarquia que gerou seja a mesma que recebeu o lead, ou caso a empresa não utilize hierarquia.

Response esperado — 200

{
  "data": [
    {
      "type": "lead",
      "id": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6",
      "internal_id": 12345678,
      "attributes": {
        "description": "Apartamento 3 quartos",
        "observation": "17 de Abril, 10:00 de 2026 - Retornar contato",
        "is_favorite": false,
        "product": {
          "id": "p1r2o3d4u5c6t7i8d9e0x1e2m3p4l5o6",
          "description": "[101] Apartamento 3 quartos",
          "prop_ref": "101",
          "price_float": 350000.00,
          "price": "350.000,00",
          "neighbourhood": "Centro",
          "city": "São Paulo",
          "real_estate_detail": {
            "negotiation_name": "Compra"
          },
          "model": null,
          "brand": null,
          "year": null,
          "version": null,
          "license_plate": null
        },
        "customer": {
          "id": "c1u2s3t4o5m6e7r8i9d0e1x2e3m4p5l6",
          "name": "João Silva",
          "email": "joao.silva@email.com",
          "phone": "5511999999999",
          "phone2": null,
          "phone_global": "+5511999999999"
        },
        "seller": {
          "id": "s1e2l3l4e5r6i7d8e9x0e1m2p3l4o5f6",
          "name": "Maria Vendedora",
          "email": "maria@empresa.com",
          "phone": "5511988888888",
          "company": "Empresa Exemplo",
          "company_id": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6",
          "is_recipient": 1,
          "can_view_bucket": true,
          "external_id": "",
          "external_name": null
        },
        "collaborators": [],
        "created_by": {
          "id": "c1r2e3a4t5e6d7b8y9i0d1e2x3e4m5p6",
          "name": "Admin Sistema",
          "email": "admin@empresa.com",
          "phone": "5511977777777",
          "company": "Empresa Exemplo",
          "company_id": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6",
          "is_recipient": 0,
          "can_view_bucket": true,
          "external_id": null,
          "external_name": null
        },
        "company": {
          "id": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6",
          "name": "Empresa Exemplo",
          "language": "pt-BR"
        },
        "lead_source": {
          "id": 542,
          "name": "Ação de Rua"
        },
        "channel": {
          "id": 2,
          "name": "Showroom"
        },
        "lost_reasons": {
          "name": null
        },
        "lead_status": {
          "id": 1,
          "alias": "under_negotiation",
          "name": "Em negociação"
        },
        "funnel_status": {
          "status": "In attendance"
        },
        "done_details": {
          "done": false,
          "done_details": null,
          "done_price": null
        },
        "archive_details": {
          "archived": false,
          "archive_notes": null
        },
        "tags": [],
        "log": [
          {
            "body": "Lead marcado como interagido pelo WhatsApp pelo usuário Admin Sistema",
            "created_at": "2026-04-16T11:41:53.608-03:00"
          },
          {
            "body": "Lead criado por Admin Sistema para Maria Vendedora",
            "created_at": "2026-04-16T11:40:27.227-03:00"
          }
        ],
        "messages": [],
        "schedulated_actions": [],
        "created_at": "2026-04-16T11:40:26.000-03:00",
        "updated_at": "2026-04-16T11:41:52.000-03:00",
        "external_created_at": null,
        "from_hierarchy_company": "Imobiliária Matriz SP",
        "last_activity_date": "2026-04-17T10:00:00.000-03:00",
        "read_at": "2026-04-16T11:41:52.000-03:00",
        "replied_at": null,
        "done_deal_at": null,
        "url": "",
        "demo_company": false
      },
      "schedulated_actions": [
        {
          "id": "a1c2t3i4o5n6i7d8e9x0e1m2p3l4o5f6",
          "seller_id": "s1e2l3l4e5r6i7d8e9x0e1m2p3l4o5f6",
          "seller_name": "Maria Vendedora",
          "schedulated_action_type_id": 6,
          "schedulated_action_type_alias": "first_contact",
          "schedulated_action_name": "Primeiro contato",
          "schedulated_action_date": "2026-04-16T11:50:26.000-03:00",
          "description": null,
          "created_at": "2026-04-16T11:40:26.000-03:00",
          "status": "Finalizado sem informar"
        }
      ],
      "messages": [
        {
          "id": "m1e2s3s4a5g6e7i8d9e0x1e2m3p4l5o6",
          "sender_id": "c1r2e3a4t5e6d7b8y9i0d1e2x3e4m5p6",
          "recipient_id": "c1u2s3t4o5m6e7r8i9d0e1x2e3m4p5l6",
          "sender_type": "Seller",
          "recipient_type": "Customer",
          "body": "Bom dia! Como posso ajudar?",
          "created_at": "2026-04-16T11:41:52.000-03:00",
          "updated_at": "2026-04-16T11:41:52.000-03:00",
          "read_at": "2026-04-16T11:41:52.000-03:00"
        }
      ],
      "facebook_attributes": {}
    }
  ],
  "pagination": {
    "current_page": 1,
    "per_page": 50,
    "total_count": 150,
    "total_pages": 3
  }
}

Buscar Lead por ID

GET https://api.contact2sale.com/integration/leads/:id

Retorna um lead pelo ID criptografado.

Headers

Key Value Descrição
Authorization Bearer {token} Token de autenticação (preferencial)
Authentication {token} Header alternativo para o mesmo token

Parâmetros

Nome Tipo Obrigatório Descrição
id string Sim ID criptografado do lead
from_hierarchy_company boolean Não Se true, inclui no lead o campo from_hierarchy_company com o nome da hierarquia (empresa) que gerou o lead. Retorna null caso a hierarquia que gerou seja a mesma que recebeu o lead, ou caso a empresa não utilize hierarquia.

Response esperado — 200

{
  "data": {
    "type": "lead",
    "id": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6",
    "internal_id": 12345678,
    "attributes": {
      "description": "Apartamento 3 quartos",
      "observation": "17 de Abril, 10:00 de 2026 - Retornar contato",
      "is_favorite": false,
      "product": {
        "id": "p1r2o3d4u5c6t7i8d9e0x1e2m3p4l5o6",
        "description": "[101] Apartamento 3 quartos",
        "prop_ref": "101",
        "price_float": 350000.00,
        "price": "350.000,00",
        "neighbourhood": "Centro",
        "city": "São Paulo",
        "real_estate_detail": {
          "negotiation_name": "Compra"
        },
        "model": null,
        "brand": null,
        "year": null,
        "version": null,
        "license_plate": null
      },
      "customer": {
        "id": "c1u2s3t4o5m6e7r8i9d0e1x2e3m4p5l6",
        "name": "João Silva",
        "email": "joao.silva@email.com",
        "phone": "5511999999999",
        "phone2": null,
        "phone_global": "+5511999999999"
      },
      "seller": {
        "id": "s1e2l3l4e5r6i7d8e9x0e1m2p3l4o5f6",
        "name": "Maria Vendedora",
        "email": "maria@empresa.com",
        "phone": "5511988888888",
        "company": "Empresa Exemplo",
        "company_id": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6",
        "is_recipient": 1,
        "can_view_bucket": true,
        "external_id": "",
        "external_name": null
      },
      "collaborators": [],
      "created_by": {
        "id": "c1r2e3a4t5e6d7b8y9i0d1e2x3e4m5p6",
        "name": "Admin Sistema",
        "email": "admin@empresa.com",
        "phone": "5511977777777",
        "company": "Empresa Exemplo",
        "company_id": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6",
        "is_recipient": 0,
        "can_view_bucket": true,
        "external_id": null,
        "external_name": null
      },
      "company": {
        "id": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6",
        "name": "Empresa Exemplo",
        "language": "pt-BR"
      },
      "lead_source": {
        "id": 542,
        "name": "Ação de Rua"
      },
      "channel": {
        "id": 2,
        "name": "Showroom"
      },
      "lost_reasons": {
        "name": null
      },
      "lead_status": {
        "id": 1,
        "alias": "under_negotiation",
        "name": "Em negociação"
      },
      "funnel_status": {
        "status": "In attendance"
      },
      "done_details": {
        "done": false,
        "done_details": null,
        "done_price": null
      },
      "archive_details": {
        "archived": false,
        "archive_notes": null
      },
      "tags": [
        {
          "id": "t1a2g3i4d5e6x7e8m9p0l1o2f3o4r5m6",
          "name": "Quente"
        }
      ],
      "log": [
        {
          "body": "Lead marcado como interagido pelo WhatsApp pelo usuário Admin Sistema",
          "created_at": "2026-04-16T11:41:53.608-03:00"
        },
        {
          "body": "Atividade criada | Retornar para o cliente | 17 de Abril, 10:00 de 2026 | Agendar visita",
          "created_at": "2026-04-16T11:41:10.571-03:00"
        },
        {
          "body": "Lead criado por Admin Sistema para Maria Vendedora",
          "created_at": "2026-04-16T11:40:27.227-03:00"
        }
      ],
      "messages": [],
      "schedulated_actions": [],
      "created_at": "2026-04-16T11:40:26.000-03:00",
      "updated_at": "2026-04-16T11:41:52.000-03:00",
      "external_created_at": null,
      "from_hierarchy_company": "Imobiliária Matriz SP",
      "last_activity_date": "2026-04-17T10:00:00.000-03:00",
      "read_at": "2026-04-16T11:41:52.000-03:00",
      "replied_at": null,
      "done_deal_at": null,
      "url": "",
      "demo_company": false
    },
    "schedulated_actions": [
      {
        "id": "a1c2t3i4o5n6i7d8e9x0e1m2p3l4o5f6",
        "seller_id": "s1e2l3l4e5r6i7d8e9x0e1m2p3l4o5f6",
        "seller_name": "Maria Vendedora",
        "schedulated_action_type_id": 6,
        "schedulated_action_type_alias": "first_contact",
        "schedulated_action_name": "Primeiro contato",
        "schedulated_action_date": "2026-04-16T11:50:26.000-03:00",
        "description": null,
        "created_at": "2026-04-16T11:40:26.000-03:00",
        "status": "Finalizado sem informar"
      },
      {
        "id": "a2c3t4i5o6n7i8d9e0x1e2m3p4l5o6f7",
        "seller_id": "s1e2l3l4e5r6i7d8e9x0e1m2p3l4o5f6",
        "seller_name": "Maria Vendedora",
        "schedulated_action_type_id": 3,
        "schedulated_action_type_alias": "feedback_customer",
        "schedulated_action_name": "Retornar para o cliente",
        "schedulated_action_date": "2026-04-17T10:00:00.000-03:00",
        "description": "Agendar visita",
        "created_at": "2026-04-16T11:41:10.000-03:00",
        "status": "Em aberto"
      }
    ],
    "messages": [
      {
        "id": "m1e2s3s4a5g6e7i8d9e0x1e2m3p4l5o6",
        "sender_id": "c1r2e3a4t5e6d7b8y9i0d1e2x3e4m5p6",
        "recipient_id": "c1u2s3t4o5m6e7r8i9d0e1x2e3m4p5l6",
        "sender_type": "Seller",
        "recipient_type": "Customer",
        "body": "Bom dia! Como posso ajudar?",
        "created_at": "2026-04-16T11:41:52.000-03:00",
        "updated_at": "2026-04-16T11:41:52.000-03:00",
        "read_at": "2026-04-16T11:41:52.000-03:00"
      }
    ],
    "facebook_attributes": {}
  }
}

Criar Lead

POST https://api.contact2sale.com/integration/leads

Cria um novo lead. É obrigatório enviar ao menos phone ou email (caso contrário retorna 423).

Headers

Key Value Descrição
Authorization Bearer {token} Token de autenticação (preferencial)
Authentication {token} Header alternativo para o mesmo token
Content-Type application/json

Parâmetros

Nome Tipo Obrigatório Descrição
name string Não Nome do cliente. Default: "Não identificado".
email string Não Email do cliente. Utilizado para deduplicação. Remove "." antes do @ automaticamente.
phone string Não Telefone principal. Se vazio, usa "customer_number" como fallback.
phone2 string Não Telefone secundário (opcional).
description string Não Descrição principal do item, exibida no card do lead. Máximo: 250 caracteres.
prop_ref string Não Código do imóvel. Obrigatório para empresas do tipo IMOBILIÁRIA. Valores especiais: "Sem código", "Não localizado", "Nenhum", "ignore".
brand string Não Marca do veículo. Apenas empresas de CARROS ou MOTOS.
model string Não Modelo do veículo. Apenas empresas de CARROS ou MOTOS.
version string Não Versão do veículo. Apenas empresas de CARROS ou MOTOS.
year integer Não Ano do veículo. Se igual ao ano atual, pode virar "Novo".
price string Não Valor do produto/imóvel/veículo. Aceita "R$ 250.000,00", "250000" ou "250000.00".
color string Não Cor do veículo. Apenas empresas de CARROS ou MOTOS.
km integer Não Quilometragem. Se 0 força vehicle_type = "Novo". Apenas empresas de CARROS ou MOTOS.
license_plate string Não Placa do veículo. Removida automaticamente da descrição. Apenas empresas de CARROS ou MOTOS.
type_negotiation_string string Não Texto livre da negociação. Faz parser automático de palavras-chave. Evite usar junto com "type_negotiation".
type_negotiation string Não Tipo de negociação. Apenas IMOBILIÁRIAS. Exemplos: "Comprar", "Alugar", "Lançamento".
vehicle_type string Não Tipo do veículo. Valores comuns: "Novo", "Usado". Apenas empresas de CARROS ou MOTOS.
city string Não Cidade do imóvel. Utilizada na distribuição.
neighbourhood string Não Bairro do imóvel. Utilizado na distribuição.
channel_id integer Não ID do canal. Valores possíveis: [1,2,3,4,5]. Default: 1 (Internet).
channel_abbrev string Não Abreviação do canal. Exemplos: "internet", "whatsapp", "telefone", "showroom".
url string Não URL do anúncio/origem. Se vazio e existir prop_ref + custom_link, a URL pode ser gerada automaticamente.
sourcerUrl string Não Campo legado de URL. Alguns parceiros ainda enviam aqui.
body string Não Primeira mensagem do lead. Máximo: 15.000 caracteres. Aceita HTML.
observation string Não Observação interna.
external_id string Não ID externo do parceiro. Pode ser usado em distribuições específicas.
custom_created_at string Não Sobrescreve o created_at do lead. Timezone da empresa é respeitada. Formato ISO 8601.
pending boolean Não Define lead como pendente (status = 5).
closed boolean Não Define lead como fechado (status = 7). Já marca como lido.
already_interacted boolean Não Marca o lead como já interagido/lido.
skip_on_interaction boolean Não Impede marcação automática de interação.
source string Não Origem do lead. Normalmente lowercase + underscore. Exemplo: "google_ads", "olx".
real_state_keywords string Não Keywords para distribuição personalizada. Apenas IMOBILIÁRIAS.
tags array Não Lista de tags. Aceita array ou string única.
tag_name string Não Tag individual. Faz merge automático com "tags".
wpp_username string Não Username/número do WhatsApp.
bsuid string Não Business Account UID do WhatsApp.

Body

{
  "data": {
    "type": "lead",
    "attributes": {

      // ============================================================
      // IDENTIFICAÇÃO DO CLIENTE (Customer)
      // ============================================================

      // Nome do cliente.
      // Default: "Não identificado"
      "name": "Pedro Silva",

      // Email do cliente.
      // Utilizado para deduplicação.
      // Remove "." antes do @ automaticamente.
      "email": "pedro@teste.com",

      // Telefone principal.
      // Se vazio, usa "customer_number" como fallback.
      "phone": "+55 11 99999-9999",

      // Telefone secundário (opcional).
      "phone2": "+55 11 99999-9999",


      // ============================================================
      // PRODUTO / IMÓVEL / VEÍCULO (Product)
      // ============================================================

      // Descrição principal do item.
      // Exibida no card do lead.
      // Máximo: 250 caracteres.
      "description": "Apartamento 2 quartos no Botafogo",

      // Código do imóvel.
      // Obrigatório para empresas do tipo IMOBILIÁRIA.
      // Valores especiais:
      // "Sem código", "Não localizado", "Nenhum", "ignore"
      "prop_ref": "AP12345",

      // Marca do veículo.
      // Apenas empresas de CARROS ou MOTOS.
      "brand": "Volkswagen",

      // Modelo do veículo.
      // Apenas empresas de CARROS ou MOTOS.
      "model": "Polo",

      // Versão do veículo.
      // Apenas empresas de CARROS ou MOTOS.
      "version": "Comfortline 1.6",

      // Ano do veículo.
      // Se igual ao ano atual, pode virar "Novo".
      "year": 2024,

      // Valor do produto/imóvel/veículo.
      // Aceita:
      // "R$ 250.000,00"
      // "250000"
      // "250000.00"
      "price": "R$ 250.000,00",

      // Cor do veículo.
      // Apenas empresas de CARROS ou MOTOS.
      "color": "Prata",

      // Quilometragem.
      // Se 0 => força vehicle_type = "Novo"
      // Apenas empresas de CARROS ou MOTOS.
      "km": 35000,

      // Placa do veículo.
      // Removida automaticamente da descrição.
      // Apenas empresas de CARROS ou MOTOS.
      "license_plate": "ABC1D23",

      // Texto livre da negociação.
      // Faz parser automático de palavras-chave.
      // Evite usar junto com "type_negotiation".
      "type_negotiation_string": "Apartamento para Aluguel por R$ 1.200,00",

      // Tipo de negociação.
      // Apenas IMOBILIÁRIAS.
      // Exemplos:
      // "Comprar"
      // "Alugar"
      // "Lançamento"
      "type_negotiation": "Comprar",

      // Tipo do veículo.
      // Valores comuns:
      // "Novo"
      // "Usado"
      // Apenas empresas de CARROS ou MOTOS.
      "vehicle_type": "Usado",

      // Cidade do imóvel.
      // Utilizada na distribuição.
      "city": "Campinas",

      // Bairro do imóvel.
      // Utilizado na distribuição.
      "neighbourhood": "Botafogo",


      // ============================================================
      // LEAD
      // ============================================================

      // ID do canal.
      // Valores possíveis:
      // [1,2,3,4,5]
      // Default: 1 (Internet)
      "channel_id": 1,

      // Abreviação do canal.
      // Exemplos:
      // "internet"
      // "whatsapp"
      // "telefone"
      // "showroom"
      "channel_abbrev": "internet",

      // URL do anúncio/origem.
      // Se vazio e existir prop_ref + custom_link,
      // a URL pode ser gerada automaticamente.
      "url": "https://exemplo.com.br/imovel/12345",

      // Campo legado de URL.
      // Alguns parceiros ainda enviam aqui.
      "sourcerUrl": "https://exemplo.com.br/imovel/12345",

      // Primeira mensagem do lead.
      // Máximo: 15.000 caracteres.
      // Aceita HTML.
      "body": "Olá, tenho interesse no imóvel.",

      // Observação interna.
      "observation": "Cliente VIP, retornar com prioridade",

      // ID externo do parceiro.
      // Pode ser usado em distribuições específicas.
      "external_id": "EXT-99887",

      // Sobrescreve o created_at do lead.
      // Timezone da empresa é respeitada.
      "custom_created_at": "2026-05-08T14:30:00",


      // ============================================================
      // ORIGEM / DISTRIBUIÇÃO
      // ============================================================

      // Estado do lead.
      // true  => pendente (distribuível)
      // false => já distribuído ou fechado
      "pending": true,

      // Lead já fechado.
      "closed": false,

      // Já houve interação com o lead.
      "already_interacted": false,

      // Pular na distribuição se já interagido.
      "skip_on_interaction": false,

      // Fonte primária da origem.
      // Exemplos:
      // "portal_zap"
      // "facebook"
      // "google_ads"
      "source": "portal_zap",

      // Palavras-chave para imobiliárias.
      // Exemplos:
      // "aluguel"
      // "venda"
      // "lançamento"
      "real_state_keywords": ["aluguel", "venda"],

      // IDs das tags do lead.
      // Exemplo: ["tag-uuid-1", "tag-uuid-2"]
      "tags": ["tag-uuid-1"],

      // Nome da tag (usado em integrações legadas).
      // Exemplo: "imoveis", "premium"
      "tag_name": "imoveis",


      // ============================================================
      // WHATSAPP / EXTRAS
      // ============================================================

      // Username/número do WhatsApp.
      "wpp_username": "5511903873417",

      // Business Account UID do WhatsApp.
      "bsuid": "1234567890"
    }
  }
}

Response esperado — 200

{
  "success": true,
  "lead_id": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6",
  "received_by": {
    "id": "s1e2l3l4e5r6i7d8e9x0e1m2p3l4o5f6",
    "name": "Maria Vendedora",
    "email": "maria@empresa.com",
    "phone": "5511988888888"
  },
  "company": "Empresa Exemplo",
  "info": {
    "name": "João Silva",
    "email": "joao.silva@email.com",
    "phone": "5511999999999",
    "channel_id": 1,
    "lead_source_id": 1,
    "message": "Interesse no imóvel X"
  }
}

Atualizar Lead

PUT https://api.contact2sale.com/integration/leads/:id

Atualiza um lead existente. O :id é o ID criptografado do lead. Suporta 3 formatos de body: via data.attributes (legado), reset de created_at, ou atualização completa (cliente + produto + mensagem).

Headers

Key Value Descrição
Authorization Bearer {token} Token de autenticação (preferencial)
Authentication {token} Header alternativo para o mesmo token
Content-Type application/json

Parâmetros

Nome Tipo Obrigatório Descrição
id string Sim ID criptografado do lead

Body

{
  "lead": {
    "channel_id": 1,
    "lead_source_id": 2,
    "url": "https://...",
    "customer": {
      "name": "Nome Atualizado",
      "email": "novo@email.com",
      "phone": "11999999999",
      "phone2": "11888888888",
      "city": "São Paulo"
    },
    "product": {
      "brand": "Toyota",
      "model": "Corolla",
      "year": "2024",
      "color": "Branco",
      "km": "0",
      "price": "150000",
      "description": "...",
      "prop_ref": "REF123"
    },
    "type_negotiation": 0,
    "body": "Mensagem opcional a anexar ao lead"
  }
}

Response esperado — 200

{
  "success": true,
  "lead": {
    "customer_id": 12345678,
    "product_id": 87654321,
    "description": "Apartamento 3 quartos",
    "updated_at": "2026-04-16T12:53:09.000-03:00",
    "company_id": 2776,
    "id": 12345678,
    "lead_source_id": 349,
    "channel_id": 1,
    "seller_id": 11111,
    "read_at": null,
    "is_favorite": false,
    "status": 0,
    "created_at": "2026-04-16T12:52:52.000-03:00",
    "is_rescued": false,
    "activity_date": "2026-04-16T13:02:52.000-03:00",
    "replied_at": null,
    "num_unread_msg_to_seller": 0,
    "messages": [],
    "related_leads": [],
    "lead_status": {
      "id": 0,
      "name": "Novo",
      "alias": "new",
      "color_hex": "#0000FF",
      "sort": 0,
      "restrict_change": false,
      "manual_change": true
    },
    "seller": {
      "id": 11111,
      "name": "Maria Vendedora",
      "company_id": 2776,
      "company_name": "Empresa Exemplo",
      "username": "mariavendedora",
      "email": "maria@empresa.com"
    },
    "product": {
      "id": 87654321,
      "description": "Apartamento 3 quartos",
      "prop_ref": "101",
      "brand": null,
      "model": null,
      "version": null,
      "year": null,
      "price": "350.000,00",
      "type_negotiation_string": "Compra"
    },
    "customer": {
      "id": 12345678,
      "name": "João Silva",
      "email": "joao.silva@email.com",
      "phone": "11999999999",
      "phone2": null,
      "phone_formatted": "(11) 99999-9999",
      "whatsapp_number": "5511999999999"
    },
    "company_name": "Empresa Exemplo",
    "source_name": "API / Internet",
    "channel_name": "Internet"
  }
}

Encaminhar Lead

PATCH https://api.contact2sale.com/integration/leads/:id/forward

Encaminha um lead para outro vendedor.

Headers

Key Value Descrição
Authorization Bearer {token} Token de autenticação (preferencial)
Authentication {token} Header alternativo para o mesmo token
Content-Type application/json

Parâmetros

Nome Tipo Obrigatório Descrição
id string Sim ID criptografado do lead

Body

{
  "seller_from_id": "<encrypted_seller_id>",
  "seller_to_id": "<encrypted_seller_id>"
}

Response esperado — 200

{
  "success": true,
  "lead": {
    "seller_id": 22222,
    "company_id": 2776,
    "id": 12345678,
    "lead_source_id": 349,
    "channel_id": 1,
    "read_at": "2026-04-16T12:53:23.000-03:00",
    "is_favorite": false,
    "status": 1,
    "description": "Apartamento 3 quartos",
    "created_at": "2026-04-16T12:52:52.000-03:00",
    "updated_at": "2026-04-16T12:53:30.000-03:00",
    "activity_date": "2026-04-20T11:00:00.000-03:00",
    "replied_at": null,
    "num_unread_msg_to_seller": 0
  }
}

Listar Tags do Lead

GET https://api.contact2sale.com/integration/leads/:id/tags

Retorna todas as tags de um lead.

Headers

Key Value Descrição
Authorization Bearer {token} Token de autenticação (preferencial)
Authentication {token} Header alternativo para o mesmo token

Parâmetros

Nome Tipo Obrigatório Descrição
id string Sim ID criptografado do lead

Response esperado — 200

{
  "success": true,
  "tags": [
    {
      "id": "t1a2g3i4d5e6x7e8m9p0l1o2f3o4r5m6",
      "name": "Quente"
    },
    {
      "id": "t2a3g4i5d6e7x8e9m0p1l2o3f4o5r6m7",
      "name": "Investidor"
    }
  ]
}

Adicionar Tag ao Lead

POST https://api.contact2sale.com/integration/leads/:id/create_tag

Adiciona uma tag a um lead.

Headers

Key Value Descrição
Authorization Bearer {token} Token de autenticação (preferencial)
Authentication {token} Header alternativo para o mesmo token
Content-Type application/json

Parâmetros

Nome Tipo Obrigatório Descrição
id string Sim ID criptografado do lead

Body

{
  "tag_id": "<encrypted_tag_id>"
}

Response esperado — 200

{
  "success": true,
  "tags": [
    {
      "id": 5646064,
      "lead_id": 12345678,
      "created_at": "2026-04-16T12:53:13.000-03:00",
      "updated_at": "2026-04-16T12:53:13.000-03:00",
      "tag_id": 48437,
      "created_by_seller_id": null
    }
  ]
}

Remover Tag do Lead

POST https://api.contact2sale.com/integration/leads/:id/remove_tag

Remove uma ou mais tags de um lead. Aceita tag_id como string (única) ou array (múltiplas).

Headers

Key Value Descrição
Authorization Bearer {token} Token de autenticação (preferencial)
Authentication {token} Header alternativo para o mesmo token
Content-Type application/json

Parâmetros

Nome Tipo Obrigatório Descrição
id string Sim ID criptografado do lead

Body

{
  "tag_id": "<encrypted_tag_id>"
}

Response esperado — 200

{
  "success": true,
  "tags": []
}

Marcar Lead como Lido

POST https://api.contact2sale.com/integration/leads/:id/mark_as_interacted

Marca um lead como lido/interagido.

Headers

Key Value Descrição
Authorization Bearer {token} Token de autenticação (preferencial)
Authentication {token} Header alternativo para o mesmo token

Parâmetros

Nome Tipo Obrigatório Descrição
id string Sim ID criptografado do lead

Response esperado — 200

{
  "success": true,
  "lead": {
    "num_unread_msg_to_seller": 0,
    "read_at": "2026-04-16T12:53:23.000-03:00",
    "id": 12345678,
    "status": 0,
    "created_at": "2026-04-16T12:52:52.000-03:00",
    "updated_at": "2026-04-16T12:53:23.000-03:00"
  }
}

Criar Mensagem no Lead

POST https://api.contact2sale.com/integration/leads/:id/create_message

Cria uma mensagem em um lead.

Headers

Key Value Descrição
Authorization Bearer {token} Token de autenticação (preferencial)
Authentication {token} Header alternativo para o mesmo token
Content-Type application/json

Parâmetros

Nome Tipo Obrigatório Descrição
id string Sim ID criptografado do lead

Body

{
  "body": "Texto da mensagem",
  "from": "bot",
  "url": "https://...",
  "external_id": "msg-ext-123",
  "created_at": "2025-01-15T10:00:00Z",
  "origin": "whatsapp",
  "message_type": "text",
  "sender_name": "João",
  "parent_message_id": "msg-parent-456",
  "tags": [
    "<encrypted_tag_id_1>",
    "<encrypted_tag_id_2>"
  ]
}

Response esperado — 201

{
  "data": {
    "type": "lead",
    "id": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6",
    "internal_id": 12345678,
    "attributes": {
      "description": "Apartamento 3 quartos",
      "lead_status": {
        "id": 0,
        "alias": "new",
        "name": "Novo"
      },
      "messages": [],
      "created_at": "2026-04-16T12:52:52.000-03:00",
      "updated_at": "2026-04-16T12:53:25.000-03:00"
    },
    "messages": [
      {
        "id": "m1e2s3s4a5g6e7i8d9e0x1e2m3p4l5o6",
        "sender_id": "s1e2n3d4e5r6i7d8e9x0e1m2p3l4o5f6",
        "recipient_id": "r1e2c3i4p5i6e7n8t9i0d1e2x3e4m5p6",
        "sender_type": "SysUser",
        "recipient_type": "Customer",
        "body": "Mensagem enviada via API",
        "created_at": "2026-04-16T12:53:25.000-03:00",
        "updated_at": "2026-04-16T12:53:25.000-03:00",
        "read_at": null
      }
    ]
  }
}

Criar Atividade no Lead

POST https://api.contact2sale.com/integration/leads/:id/create_activity

Cria uma atividade em um lead.

Headers

Key Value Descrição
Authorization Bearer {token} Token de autenticação (preferencial)
Authentication {token} Header alternativo para o mesmo token
Content-Type application/json

Parâmetros

Nome Tipo Obrigatório Descrição
id string Sim ID criptografado do lead

Body

{
  "date": "2025-01-20T14:00:00Z",
  "type": {
    "activity": true
  },
  "body": "Descrição da atividade",
  "send_push": true,
  "title": "Título da notificação"
}

Response esperado — 201

{
  "data": {
    "type": "lead",
    "id": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6",
    "internal_id": 12345678,
    "attributes": {
      "description": "Apartamento 3 quartos",
      "lead_status": {
        "id": 1,
        "alias": "under_negotiation",
        "name": "Em negociação"
      },
      "log": [
        {
          "body": "Atividade criada | Retornar para o cliente | 20 de Abril, 14:00 de 2026 | Agendar visita ao imóvel",
          "created_at": "2026-04-16T12:53:28.101-03:00"
        }
      ],
      "created_at": "2026-04-16T12:52:52.000-03:00",
      "updated_at": "2026-04-16T12:53:28.000-03:00",
      "last_activity_date": "2026-04-20T14:00:00.000-03:00"
    },
    "schedulated_actions": [
      {
        "id": "a1c2t3i4o5n6i7d8e9x0e1m2p3l4o5f6",
        "seller_id": "s1e2l3l4e5r6i7d8e9x0e1m2p3l4o5f6",
        "seller_name": "Maria Vendedora",
        "schedulated_action_type_id": 3,
        "schedulated_action_type_alias": "feedback_customer",
        "schedulated_action_name": "Retornar para o cliente",
        "schedulated_action_date": "2026-04-20T14:00:00.000-03:00",
        "description": "Agendar visita ao imóvel",
        "created_at": "2026-04-16T12:53:27.000-03:00",
        "status": "Em aberto"
      }
    ]
  }
}

Atualizar Status do Lead

POST https://api.contact2sale.com/integration/leads/:id/update_status

Atualiza o status de um lead. Quando status = 3, o lead é marcado como perdido.

Headers

Key Value Descrição
Authorization Bearer {token} Token de autenticação (preferencial)
Authentication {token} Header alternativo para o mesmo token
Content-Type application/json

Parâmetros

Nome Tipo Obrigatório Descrição
id string Sim ID criptografado do lead

Body

{
  "status": 3,
  "message": "Cliente não tem interesse",
  "lost_reason_ids": [
    12
  ]
}

Response esperado — 201

{
  "data": {
    "type": "lead",
    "id": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6",
    "internal_id": 12345678,
    "attributes": {
      "description": "Apartamento 3 quartos",
      "lead_status": {
        "id": 3,
        "alias": "lost",
        "name": "Arquivado"
      },
      "archive_details": {
        "archived": true,
        "archive_notes": "Cliente não tem interesse"
      },
      "lost_reasons": {
        "name": "inactive"
      },
      "log": [
        {
          "body": "O status foi alterado para Arquivado por Integração. | Detalhes: Cliente não tem interesse",
          "created_at": "2026-04-16T12:53:32.000-03:00"
        }
      ],
      "created_at": "2026-04-16T12:52:52.000-03:00",
      "updated_at": "2026-04-16T12:53:32.000-03:00"
    }
  }
}

Fechar Negócio do Lead

POST https://api.contact2sale.com/integration/leads/:id/done_deal

Registra o fechamento de negócio de um lead.

Headers

Key Value Descrição
Authorization Bearer {token} Token de autenticação (preferencial)
Authentication {token} Header alternativo para o mesmo token
Content-Type application/json

Parâmetros

Nome Tipo Obrigatório Descrição
id string Sim ID criptografado do lead

Body

{
  "prop_ref": "PROP-123",
  "done_type_negotiation": "sale",
  "info": "Detalhes do negócio",
  "date": "2025-01-15",
  "value": "500000"
}

Response esperado — 200

{
  "success": true,
  "tags": {
    "id": 80123751,
    "done_deal_at": null,
    "lead_id": 12345678,
    "created_at": "2026-04-16T12:52:52.000-03:00",
    "updated_at": "2026-04-16T12:53:32.000-03:00",
    "done_details": null,
    "received_by_seller_id": 11111,
    "done_extra_vehicle": null,
    "done_extra_immobile": null,
    "done_price": null,
    "done_type_negotiation": null,
    "archieve_details": "Detalhes do arquivamento"
  }
}

Usuários

Endpoints para gerenciamento de vendedores.

Listar Vendedores

GET https://api.contact2sale.com/integration/sellers

Lista todos os vendedores da empresa autenticada (incluindo empresas do grupo).

Headers

Key Value Descrição
Authorization Bearer {token} Token de autenticação (preferencial)
Authentication {token} Header alternativo para o mesmo token

Response esperado — 200

[
  {
    "id": "s1e2l3l4e5r6i7d8e9x0e1m2p3l4o5f6",
    "name": "Maria Vendedora",
    "email": "maria@empresa.com",
    "phone": "5511988888888",
    "company": "Empresa Exemplo",
    "company_id": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6",
    "is_recipient": 1,
    "can_view_bucket": true,
    "external_id": "",
    "external_name": "",
    "is_master": true
  },
  {
    "id": "s2e3l4l5e6r7i8d9e0x1e2m3p4l5o6f7",
    "name": "Carlos Corretor",
    "email": "carlos@empresa.com",
    "phone": "5511977777777",
    "company": "Empresa Exemplo",
    "company_id": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6",
    "is_recipient": 0,
    "can_view_bucket": true,
    "external_id": null,
    "external_name": null,
    "is_master": false
  },
  {
    "id": "s3e4l5l6e7r8i9d0e1x2e3m4p5l6o7f8",
    "name": "Ana Gestora",
    "email": "ana@empresa.com",
    "phone": "5511966666666",
    "company": "Empresa Exemplo",
    "company_id": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6",
    "is_recipient": 4,
    "can_view_bucket": true,
    "external_id": "12345",
    "external_name": "Nome Externo",
    "is_master": false
  }
]

Criar Vendedor

POST https://api.contact2sale.com/integration/sellers

Cria um novo vendedor.

Headers

Key Value Descrição
Authorization Bearer {token} Token de autenticação (preferencial)
Authentication {token} Header alternativo para o mesmo token
Content-Type application/json

Body

{
  "company_id": "<encrypted_company_id>",
  "name": "Novo Vendedor",
  "username": "novovendedor",
  "email": "vendedor@exemplo.com",
  "phone1": "11999999999",
  "is_recipient": true,
  "is_rescue": false,
  "is_master": false,
  "can_access_users": false,
  "show_in_metrics": true,
  "external_id": "EXT-001",
  "own_captations_aux": [
    0,
    1
  ],
  "team": [
    0,
    1,
    2
  ]
}

Response esperado — 201

{
  "id": "s1e2l3l4e5r6i7d8e9x0e1m2p3l4o5f6",
  "name": "Novo Vendedor",
  "email": "vendedor@empresa.com",
  "phone": "5511999999999",
  "company": "Empresa Exemplo",
  "company_id": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6",
  "is_recipient": 1,
  "can_view_bucket": true,
  "external_id": "EXT-001",
  "external_name": null,
  "is_master": false
}

Atualizar Vendedor

PUT https://api.contact2sale.com/integration/sellers/:id

Atualiza um vendedor existente. O :id é o ID criptografado do vendedor. Aceita os mesmos campos do POST além de recipient_rotation, recipient_distribution, recipient_memory e can_view_bucket.

Headers

Key Value Descrição
Authorization Bearer {token} Token de autenticação (preferencial)
Authentication {token} Header alternativo para o mesmo token
Content-Type application/json

Parâmetros

Nome Tipo Obrigatório Descrição
id string Sim ID criptografado do vendedor

Body

{
  "name": "Vendedor Atualizado",
  "email": "vendedor.novo@empresa.com",
  "is_recipient": true,
  "can_view_bucket": true
}

Response esperado — 200

{
  "id": "s1e2l3l4e5r6i7d8e9x0e1m2p3l4o5f6",
  "name": "Maria Vendedora Atualizada",
  "email": "maria.nova@empresa.com",
  "phone": "5511988888888",
  "company": "Empresa Exemplo",
  "company_id": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6",
  "is_recipient": 1,
  "can_view_bucket": true,
  "external_id": "",
  "external_name": "",
  "is_master": true
}

Batch Update Timeshift

PUT https://api.contact2sale.com/integration/sellers/batch_update_timeshift

Atualiza em lote a configuração de timeshift de múltiplos vendedores. Os vendedores são processados em ordem reversa e o last_lead_received_at é escalonado em 1 segundo para estabelecer ordem de prioridade.

Headers

Key Value Descrição
Authorization Bearer {token} Token de autenticação (preferencial)
Authentication {token} Header alternativo para o mesmo token
Content-Type application/json

Body

{
  "seller_ids": [
    "<encrypted_id_1>",
    "<encrypted_id_2>"
  ],
  "recipient_rotation": "...",
  "recipient_distribution": "...",
  "recipient_memory": "..."
}

Response esperado — 200

{
  "success": true
}

Empresas

Endpoints para listar empresas do grupo (filiais).

Listar Empresas

GET https://api.contact2sale.com/integration/companies

Lista todas as empresas do grupo (filiais) da empresa autenticada.

Headers

Key Value Descrição
Authorization Bearer {token} Token de autenticação (preferencial)
Authentication {token} Header alternativo para o mesmo token

Response esperado — 200

[
  {
    "id": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6",
    "name": "Empresa Exemplo"
  },
  {
    "id": "d6c5b4a3f2e1d0c9b8a7f6e5d4c3b2a1",
    "name": "Empresa Exemplo - Filial 2"
  },
  {
    "id": "e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2",
    "name": "Empresa Exemplo - Filial 3"
  }
]

Tags

Endpoints para gerenciamento de tags.

Listar Tags

GET https://api.contact2sale.com/integration/tags

Lista as tags da empresa autenticada.

Headers

Key Value Descrição
Authorization Bearer {token} Token de autenticação (preferencial)
Authentication {token} Header alternativo para o mesmo token

Parâmetros

Nome Tipo Obrigatório Descrição
name string Não Filtrar pelo nome exato da tag
autofill boolean Não Filtrar pela flag de autofill

Response esperado — 200

{
  "data": [
    {
      "id": "t1a2g3i4d5e6x7e8m9p0l1o2f3o4r5m6",
      "type": "tag",
      "attributes": {
        "id": "t1a2g3i4d5e6x7e8m9p0l1o2f3o4r5m6",
        "name": "Quente",
        "enabled": true,
        "autofill": false,
        "instructions": null
      }
    },
    {
      "id": "t2a3g4i5d6e7x8e9m0p1l2o3f4o5r6m7",
      "type": "tag",
      "attributes": {
        "id": "t2a3g4i5d6e7x8e9m0p1l2o3f4o5r6m7",
        "name": "Frio",
        "enabled": true,
        "autofill": false,
        "instructions": null
      }
    },
    {
      "id": "t3a4g5i6d7e8x9e0m1p2l3o4f5o6r7m8",
      "type": "tag",
      "attributes": {
        "id": "t3a4g5i6d7e8x9e0m1p2l3o4f5o6r7m8",
        "name": "Investidor",
        "enabled": true,
        "autofill": true,
        "instructions": "Aplicar quando o cliente demonstrar interesse em investimento"
      }
    },
    {
      "id": "t4a5g6i7d8e9x0e1m2p3l4o5f6o7r8m9",
      "type": "tag",
      "attributes": {
        "id": "t4a5g6i7d8e9x0e1m2p3l4o5f6o7r8m9",
        "name": "Financiamento",
        "enabled": true,
        "autofill": false,
        "instructions": null
      }
    }
  ]
}

Criar Tag

POST https://api.contact2sale.com/integration/tags

Cria uma nova tag. Se uma tag com os mesmos parâmetros já existir, retorna a tag existente com status 201 e uma chave errors.

Headers

Key Value Descrição
Authorization Bearer {token} Token de autenticação (preferencial)
Authentication {token} Header alternativo para o mesmo token
Content-Type application/json

Body

{
  "tag": {
    "name": "Nova Tag",
    "autofill": false,
    "instructions": "Instruções para IA de autofill"
  }
}

Response esperado — 201

{
  "tag": {
    "id": "t1a2g3i4d5e6x7e8m9p0l1o2f3o4r5m6",
    "name": "Nova Tag",
    "enabled": true,
    "company_id": 2776,
    "created_by_seller_id": 12345,
    "edited_by_seller_id": null,
    "created_at": "2026-04-16T12:00:00.000-03:00",
    "updated_at": "2026-04-16T12:00:00.000-03:00",
    "autofill": false,
    "instructions": null
  }
}

Regras de Distribuição

Endpoints para gerenciamento de regras de distribuição (regiões).

Listar Regras de Distribuição

GET https://api.contact2sale.com/integration/distribution_rules

Lista todas as regras de distribuição (regiões) da empresa e suas filiais.

Headers

Key Value Descrição
Authorization Bearer {token} Token de autenticação (preferencial)
Authentication {token} Header alternativo para o mesmo token

Response esperado — 200

[
  {
    "cod_1": "ABC123",
    "cod_2": "Empreendimento Centro",
    "cod_3": "",
    "priority": 1,
    "type_rule": "distribution",
    "seller_id": "s1e2l3l4e5r6i7d8e9x0e1m2p3l4o5f6",
    "company_id": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6"
  },
  {
    "cod_1": "DEF456",
    "cod_2": "Empreendimento Sul",
    "cod_3": "Compra",
    "priority": 1,
    "type_rule": "distribution",
    "seller_id": "s2e3l4l5e6r7i8d9e0x1e2m3p4l5o6f7",
    "company_id": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6"
  },
  {
    "cod_1": null,
    "cod_2": null,
    "cod_3": "Compra",
    "priority": 1,
    "type_rule": "rotation",
    "seller_id": "s3e4l5l6e7r8i9d0e1x2e3m4p5l6o7f8",
    "company_id": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6"
  },
  {
    "cod_1": null,
    "cod_2": null,
    "cod_3": "Aluguel",
    "priority": 1,
    "type_rule": "rotation",
    "seller_id": "s3e4l5l6e7r8i9d0e1x2e3m4p5l6o7f8",
    "company_id": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6"
  }
]

Criar Regra de Distribuição

POST https://api.contact2sale.com/integration/distribution_rules

Cria uma nova regra de distribuição.

Headers

Key Value Descrição
Authorization Bearer {token} Token de autenticação (preferencial)
Authentication {token} Header alternativo para o mesmo token
Content-Type application/json

Body

{
  "cod_1": "SP",
  "cod_2": "São Paulo",
  "cod_3": "Centro",
  "priority": 1,
  "type_rule": "rotation",
  "seller_id": "<encrypted_seller_id>",
  "company_id": "<encrypted_company_id>"
}

Response esperado — 201

{
  "message": "Distribution rule created successfully"
}

Filas de Distribuição

Endpoints para gerenciamento de filas de distribuição.

Listar Filas de Distribuição

GET https://api.contact2sale.com/integration/distribution_queues/list_queues

Lista as filas de distribuição da empresa pai. Retorna headers de paginação: Total-pages, Total-entries, Current-page.

Headers

Key Value Descrição
Authorization Bearer {token} Token de autenticação (preferencial)
Authentication {token} Header alternativo para o mesmo token

Parâmetros

Nome Tipo Obrigatório Descrição
page integer Não Número da página
per_page integer Não Itens por página

Response esperado — 200

{
  "success": true,
  "distribution_queues": [
    {
      "id": 12345,
      "name": "Fila Principal",
      "priority": 10,
      "status": "enabled",
      "queue_type": "custom_queue",
      "leads_count": 0,
      "redistributable_leads_count": null,
      "redistributable": false,
      "check_in": false,
      "check_in_qr_code": false,
      "group_memory_lead": false,
      "receptionist_enabled": false,
      "today_working_time": {
        "begin": "08:00",
        "end": "18:00",
        "enable": true
      },
      "sales_stand_form_id": null,
      "advanced_queue_edit": false,
      "rules": [
        {
          "field": "type_negotiation",
          "operator": "equal",
          "value": "Compra"
        }
      ],
      "next_seller_index": 1,
      "next_seller": {
        "id": 67890,
        "seller_id": 11111,
        "seller_name": "Maria Vendedora",
        "company_id": 2776,
        "company_name": "Empresa Exemplo",
        "priority": 1,
        "status": "enabled",
        "repeated_on_queue": false,
        "count_on_queue": 1,
        "first_check_in_at": null,
        "last_check_out_at": null,
        "checked_in_after_shuffle": false,
        "own_hierarchy_name": "Empresa Exemplo",
        "closest_parent_hierarchy_name": null,
        "level_one_parent_hierarchy_name": null
      },
      "distribution_sellers_quantity": 3
    },
    {
      "id": 12346,
      "name": "Fila Check-in",
      "priority": 9,
      "status": "enabled",
      "queue_type": "custom_queue",
      "leads_count": 0,
      "redistributable_leads_count": null,
      "redistributable": false,
      "check_in": true,
      "check_in_qr_code": true,
      "group_memory_lead": false,
      "receptionist_enabled": false,
      "today_working_time": {
        "begin": "00:00",
        "end": "23:59",
        "enable": true
      },
      "sales_stand_form_id": null,
      "advanced_queue_edit": false,
      "rules": [],
      "next_seller_index": 0,
      "next_seller": {},
      "distribution_sellers_quantity": 0
    }
  ]
}

Listar Vendedores da Fila

GET https://api.contact2sale.com/integration/distribution_queues/:id/sellers

Lista os vendedores de uma fila de distribuição. Inclui headers de paginação.

Headers

Key Value Descrição
Authorization Bearer {token} Token de autenticação (preferencial)
Authentication {token} Header alternativo para o mesmo token

Parâmetros

Nome Tipo Obrigatório Descrição
id integer Sim ID da fila de distribuição
page integer Não Número da página
per_page integer Não Itens por página

Response esperado — 200

{
  "success": true,
  "distribution_queue_sellers": [
    {
      "id": 67890,
      "seller_id": 11111,
      "seller_name": "Maria Vendedora",
      "company_id": 2776,
      "company_name": "Empresa Exemplo",
      "priority": 1,
      "status": "enabled",
      "repeated_on_queue": false,
      "count_on_queue": 1,
      "first_check_in_at": null,
      "last_check_out_at": null,
      "checked_in_after_shuffle": false,
      "own_hierarchy_name": "Empresa Exemplo",
      "closest_parent_hierarchy_name": null,
      "level_one_parent_hierarchy_name": null
    },
    {
      "id": 67891,
      "seller_id": 22222,
      "seller_name": "Carlos Corretor",
      "company_id": 2776,
      "company_name": "Empresa Exemplo",
      "priority": 2,
      "status": "enabled",
      "repeated_on_queue": false,
      "count_on_queue": 1,
      "first_check_in_at": null,
      "last_check_out_at": null,
      "checked_in_after_shuffle": false,
      "own_hierarchy_name": "Empresa Exemplo",
      "closest_parent_hierarchy_name": null,
      "level_one_parent_hierarchy_name": null
    }
  ]
}

Atualizar Prioridades dos Vendedores

POST https://api.contact2sale.com/integration/distribution_queues/:id/sellers_priorities

Atualiza as prioridades dos vendedores dentro de uma fila de distribuição.

Headers

Key Value Descrição
Authorization Bearer {token} Token de autenticação (preferencial)
Authentication {token} Header alternativo para o mesmo token
Content-Type application/json

Parâmetros

Nome Tipo Obrigatório Descrição
id integer Sim ID da fila de distribuição

Body

{
  "...": "Configuração de prioridades dos vendedores"
}

Response esperado — 200

{
  "success": true,
  "distribution_queue_sellers": [
    {
      "id": 67890,
      "seller_id": 11111,
      "seller_name": "Maria Vendedora",
      "priority": 1,
      "status": "enabled"
    },
    {
      "id": 67891,
      "seller_id": 22222,
      "seller_name": "Carlos Corretor",
      "priority": 2,
      "status": "enabled"
    }
  ]
}

Redistribuir Lead

POST https://api.contact2sale.com/integration/distribution_queues/:id/redistribute_lead

Redistribui um lead pela fila de distribuição.

Headers

Key Value Descrição
Authorization Bearer {token} Token de autenticação (preferencial)
Authentication {token} Header alternativo para o mesmo token
Content-Type application/json

Parâmetros

Nome Tipo Obrigatório Descrição
id integer Sim ID da fila de distribuição

Body

{
  "id": "<encrypted_lead_id>"
}

Response esperado — 200

{
  "success": true,
  "lead_id": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6",
  "new_seller": {
    "id": 22222,
    "name": "Carlos Corretor",
    "company_name": "Empresa Exemplo"
  }
}

Definir Próximo Vendedor

POST https://api.contact2sale.com/integration/distribution_queues/:id/next_seller

Define o próximo vendedor na rotação da fila de distribuição. O vendedor deve estar habilitado na fila.

Headers

Key Value Descrição
Authorization Bearer {token} Token de autenticação (preferencial)
Authentication {token} Header alternativo para o mesmo token
Content-Type application/json

Parâmetros

Nome Tipo Obrigatório Descrição
id integer Sim ID da fila de distribuição

Body

{
  "next_queue_seller_id": 123
}

Response esperado — 200

{
  "next_seller": {
    "id": 67890,
    "distribution_queue_id": 12345,
    "seller_id": 11111,
    "priority": 1,
    "last_lead_received_at": null,
    "status": "enabled",
    "created_at": "2026-04-15T15:03:40.000-03:00",
    "updated_at": "2026-04-15T15:03:40.000-03:00",
    "lead_skipped_at": null
  }
}

Webhooks

Endpoints para gerenciamento de webhooks, que permitem receber automaticamente as informações dos leads em tempo real através de gatilhos configuráveis.

Com os webhooks, seu sistema será notificado sempre que um lead for criado, atualizado ou encerrado — sem necessidade de consultar a API periodicamente.

Assinar Webhook

POST https://api.contact2sale.com/integration/api/subscribe

Assina eventos de webhook para leads. Ações disponíveis: on_create_lead, on_update_lead, on_close_lead.

Gatilhos disponíveis:

⚠️ Importante: Só é possível cadastrar 1 endpoint por token utilizado. Caso um segundo endpoint seja cadastrado, o primeiro será automaticamente apagado.

É possível utilizar os 3 gatilhos em um mesmo endpoint — basta enviar uma requisição de assinatura para cada ação desejada.

Headers

Key Value Descrição
Authorization Bearer {token} Token de autenticação (preferencial)
Authentication {token} Header alternativo para o mesmo token
Content-Type application/json

Body

{
  "hook_action": "on_create_lead",
  "hook_url": "https://seu-servidor.com/webhook"
}

Response esperado — 200

{
  "success": true,
  "message": "Subscribed successfully"
}

Cancelar Webhook

POST https://api.contact2sale.com/integration/api/unsubscribe

Cancela a assinatura de eventos de webhook.

Headers

Key Value Descrição
Authorization Bearer {token} Token de autenticação (preferencial)
Authentication {token} Header alternativo para o mesmo token
Content-Type application/json

Body

{
  "hook_action": "on_create_lead"
}

Response esperado — 200

{
  "success": true,
  "message": "Unsubscribed successfully"
}

Stand de Vendas

Endpoints para acesso a dados do módulo de Estande de Vendas. ⚠️ Esses endpoints só funcionam caso a função de Stand de Vendas esteja ativa na sua conta.

Fluxo recomendado:

  1. GET /stands → descobre os IDs de estandes e formulários
  2. GET /leads → lista leads filtrando por custom_lead_form_id (do passo 1)
  3. GET /attendance_summaries → lista presenças filtrando por sales_stand_id (do passo 1)

⚠️ Todos os IDs retornados pela API são criptografados e devem ser enviados como recebidos nos parâmetros de filtro. Nunca use IDs numéricos diretos.

Listar Estandes

GET https://api.contact2sale.com/integration/integration/sales_stand/stands

Lista os estandes de vendas (filas de distribuição com regra de estande) acessíveis pela hierarquia da empresa autenticada, com o formulário de atendimento associado a cada um.

Headers

Key Value Descrição
Authorization Bearer <token> Token de autenticação gerado no C2S

Parâmetros

Nome Tipo Obrigatório Descrição
company_ids[] array de strings Não Filtra por empresas específicas da hierarquia. Se omitido, retorna estandes de toda a hierarquia.

Response esperado — 200

{
  "data": [
    {
      "id": 123,
      "name": "Nome do Estande",
      "company_id": "<company_id>",
      "company_name": "Nome da Empresa",
      "custom_lead_form_id": 456,
      "created_at": "2025-01-15T10:00:00.000-03:00",
      "updated_at": "2025-01-16T14:30:00.000-03:00"
    }
  ]
}

Listar Leads do Estande

GET https://api.contact2sale.com/integration/integration/sales_stand/leads

Lista os leads capturados em estandes de vendas, com paginação de 50 registros por página.

Headers

Key Value Descrição
Authorization Bearer <token> Token de autenticação gerado no C2S

Parâmetros

Nome Tipo Obrigatório Descrição
start_date string (YYYY-MM-DD) Não Início do período. Padrão: 1 mês atrás.
end_date string (YYYY-MM-DD) Não Fim do período. Padrão: hoje.
custom_lead_form_ids[] array de strings Não Filtra por formulário(s) de estande. Usar os custom_lead_form.id retornados por /stands.
company_ids[] array de strings Não Filtra por empresas específicas da hierarquia.
page integer Não Página desejada. Padrão: 1.

Response esperado — 200

{
  "data": [
    {
      "id": "<encrypted_lead_id>",
      "customer_name": "Nome do Cliente",
      "customer_email": "cliente@exemplo.com",
      "customer_phone": "11999999999",
      "seller_name": "Nome do Vendedor",
      "status": "Em negociação",
      "check_in_at": "2025-01-15T10:00:00.000-03:00",
      "check_out_at": "2025-01-15T11:00:00.000-03:00",
      "created_at": "2025-01-15T10:00:00.000-03:00"
    }
  ],
  "pagination": {
    "current_page": 1,
    "per_page": 50,
    "total_count": 1,
    "total_pages": 1
  }
}

Resumo de Presenças

GET https://api.contact2sale.com/integration/integration/sales_stand/attendance_summaries

Lista o resumo de presenças por diretor/gerente/empresa com paginação de 50 registros por página.

Headers

Key Value Descrição
Authorization Bearer <token> Token de autenticação gerado no C2S

Parâmetros

Nome Tipo Obrigatório Descrição
start_date string (YYYY-MM-DD) Sim Início do período.
end_date string (YYYY-MM-DD) Sim Fim do período.
sales_stand_ids[] array de strings Não Filtra por estande(s). Usar os id retornados por /stands.
company_ids[] array de strings Não Filtra por empresas específicas da hierarquia.
page integer Não Página desejada. Padrão: 1.

Response esperado — 200

{
  "data": [
    {
      "seller_id": "<seller_id>",
      "seller_name": "Nome do Vendedor",
      "total_attendances": 15,
      "total_leads_received": 10,
      "check_in_count": 20,
      "check_out_count": 20,
      "average_attendance_time_minutes": 45
    }
  ]
}

Blocklist

Endpoints para gerenciamento da blocklist de contatos da hierarquia. ⚠️ Esses endpoints só funcionam caso a função de "Hierarquia" esteja ativa na sua conta.

Listar Blocklist

GET https://api.contact2sale.com/integration/integration/hierarchy_blocklists

Lista todas as entradas da blocklist da hierarquia da empresa autenticada, ordenadas pela mais recente.

O escopo é sempre a hierarquia da empresa autenticada (determinado via top_hierarchy_company).

Headers

Key Value Descrição
Authorization <token> Token de autenticação gerado no C2S

Response esperado — 200

{
  "blocklists": [
    {
      "id": 789,
      "phone": "5511999999999",
      "email": null,
      "top_parent_company_id": "<company_id>",
      "created_at": "2025-01-15T10:00:00.000-03:00",
      "updated_at": "2025-01-15T10:00:00.000-03:00"
    },
    {
      "id": 788,
      "phone": null,
      "email": "bloqueado@exemplo.com",
      "top_parent_company_id": "<company_id>",
      "created_at": "2025-01-14T10:00:00.000-03:00",
      "updated_at": "2025-01-14T10:00:00.000-03:00"
    }
  ]
}

Adicionar à Blocklist

POST https://api.contact2sale.com/integration/integration/hierarchy_blocklists

Adiciona um telefone e/ou e-mail à blocklist da hierarquia. Ao ser criada, a entrada impede que novos leads com esse contato sejam distribuídos dentro da hierarquia.

Campos do body:

Pelo menos um dos dois (phone ou email) deve ser enviado.

Verificação de duplicidade: O sistema verifica se já existe uma entrada com o mesmo telefone (considerando variações de formatação) ou e-mail na hierarquia. Se existir, retorna 409 Conflict.

Notas:

Respostas possíveis:

Headers

Key Value Descrição
Authorization <token> Token de autenticação gerado no C2S
Content-Type application/json Tipo do conteúdo

Parâmetros

Nome Tipo Obrigatório Descrição
phone string Não Telefone do contato. Pelo menos phone ou email deve ser enviado.
email string Não E-mail do contato. Pelo menos phone ou email deve ser enviado.
remove_leads boolean Não Se true, remove/redistribui leads existentes com esse contato. Default: false.

Body

{"hierarchy_blocklist": {"phone": "11999998888", "email": "contato@empresa.com", "remove_leads": true}}

Response esperado — 201

{
  "success": true
}