---
name: oneclicksales
description: Opera o OneClick Sales pela API pública /v1 em nome de uma ou várias empresas, cada uma identificada só pelo CNPJ (CPF não é aceito). Envia WhatsApp, WhatsApp Oficial, SMS, e-mail, ligação com IA e vídeo para um contato ou em massa (até 30 mil por chamada); consulta plano, saldo, limites, diagnóstico e o andamento de envios e disparos; registra opt-in, gerencia a lista de bloqueio e o webhook; gera o Pix de recarga de créditos e de renovação do plano. Use quando o usuário pedir algo no OneClick Sales ou citar a chave ocs_live_pk_/ocs_test_pk_.
license: Proprietária — uso com uma conta OneClick Sales, conforme os Termos de Uso (https://oneclicksales.com.br/termos-de-uso).
compatibility: Requer Node.js 18 ou mais novo e acesso à internet até https://oneclicksales.com.br. A chave da API fica em variável de ambiente.
metadata:
  author: OneClick Sales
  version: "1.0.2"
  homepage: https://oneclicksales.com.br/skills
---

# OneClick Sales (API /v1)

O OneClick Sales é uma plataforma brasileira de prospecção B2B e envio multicanal. Esta skill fala com a API pública
`https://oneclicksales.com.br/v1` usando a chave da empresa e aplica as mesmas regras do painel: LGPD, janela de envio,
uma abordagem por dia por contato em cada canal, lista de bloqueio e débito dos créditos da conta.

Tutorial para pessoas (instalar e configurar uma ou várias empresas): https://oneclicksales.com.br/skills

## Regras que você segue sempre

1. **Só CNPJ.** Cada conta do OneClick Sales é uma empresa, com um CNPJ (filial tem CNPJ próprio e conta própria).
   Se o usuário der um CPF, explique que a plataforma atende só empresas e peça o CNPJ.
2. **Uma empresa por vez, escolhida pelo usuário.** Com mais de uma empresa configurada, pergunte para qual CNPJ é a
   ação e passe `--cnpj`. Nunca escolha sozinho nem "aproveite" a chave de outra empresa.
3. **A chave nunca passa pelo chat.** Não peça, não mostre, não grave em arquivo do projeto nem no Git. Ela fica em
   variável de ambiente (veja [references/contas-cnpj.md](references/contas-cnpj.md)).
4. **Sandbox primeiro.** Com `ocs_test_pk_…` a API lê os dados reais e simula envios, disparos e registros (`dryRun`),
   sem enviar nem cobrar. Use para montar e conferir a ação.
5. **Produção só com aprovação.** Antes de enviar, cobrar ou alterar com `ocs_live_pk_…`, mostre ao usuário a empresa
   (razão social e CNPJ), o canal, quantos contatos, o texto exato e o custo em créditos, e espere um "sim" claro.
   Só então chame com `--confirmado`. Uma aprovação vale para aquela ação, não para as próximas.
6. **LGPD.** Envio exige `X-LGPD-Consent-Logged: true` (opção `--lgpd`): é a empresa declarando ter base legal para
   contatar cada pessoa. Use só depois que o usuário confirmar isso. Nunca tente contornar bloqueio ou pedido de saída.
7. **Não invente contato.** Telefones, e-mails e nomes vêm só do usuário ou de arquivos que ele indicou.
8. **Repetir não duplica.** Numa nova tentativa da mesma ação, use o mesmo `--idempotencia` (vale 24 h).
9. **Respeite os limites.** No 429, espere o `Retry-After`. Fora da janela de envio o envio avulso é recusado e o
   disparo em massa espera a janela abrir.

## Configurar (uma vez, feito pela pessoa)

- Uma empresa: `OCS_CNPJ` e `OCS_API_KEY`.
- Várias empresas: uma variável `OCS_API_KEY_<CNPJ com 14 dígitos>` por empresa.
- Conferir: `node scripts/ocs.mjs contas` (lista os CNPJs, sem a chave) e `node scripts/ocs.mjs conferir`
  (pergunta à API de qual CNPJ é cada chave e mostra plano e se pode enviar).

Passo a passo, várias pessoas na mesma empresa e várias empresas: [references/contas-cnpj.md](references/contas-cnpj.md).

Se nesta sessão também houver as ferramentas do servidor MCP `oneclicksales` (o plugin oficial do Claude Code, com a
skill `oneclicksales:ferramentas`), faça cada ação por um caminho só — nunca repita pelo outro o que já foi feito — e
sugira ao usuário ficar com um dos dois: a skill e o plugin falam com a mesma conta e com a mesma chave.

## Como chamar a API

Os caminhos dos scripts são relativos à pasta desta skill.

```bash
node scripts/ocs.mjs <GET|POST|PUT|DELETE> /v1/<rota> [--cnpj <CNPJ>] [--dados '<json>' | --arquivo corpo.json] [--lgpd] [--idempotencia <valor>] [--confirmado]
```

O script escolhe a chave pelo CNPJ, recusa CPF e CNPJ inválido, confere na API que a chave é daquele CNPJ antes da
primeira chamada (guarda por 1 hora), exige `--confirmado` para ação real em produção e cria a `Idempotency-Key`
quando você não passa uma (ele a mostra para reaproveitar). Resposta no stdout; status e `X-Request-Id` no stderr.
No Git Bash do Windows, escreva o caminho sem a barra inicial (`v1/account`) se o seu shell trocar `/v1` por uma pasta.

Sem Node.js, a mesma chamada por `curl` (leia a chave da variável, nunca a escreva no comando):

```bash
curl -sS https://oneclicksales.com.br/v1/account -H "Authorization: Bearer $OCS_API_KEY"
```

## Fluxo recomendado

1. `node scripts/ocs.mjs conferir --cnpj <CNPJ>` — empresa certa, plano em vigor, pode enviar?
2. `GET /v1/account/credits` (saldo por canal) e, se precisar, `GET /v1/account/limits` e `GET /v1/account/health`.
3. Monte a ação e teste com a chave de sandbox (resposta com `dryRun: true`).
4. Mostre o resumo ao usuário (regra 5) e, com o "sim", rode em produção com `--lgpd` e `--confirmado`.
5. Acompanhe: `GET /v1/messages/{messageId}` (um envio) ou `GET /v1/dispatches/{dispatchId}` e `/results` (massa).

## Onde está cada coisa

| Preciso de… | Leia |
| --- | --- |
| Configurar uma ou várias empresas (CNPJ), chaves e métodos | [references/contas-cnpj.md](references/contas-cnpj.md) |
| Enviar para um contato (WhatsApp, Oficial, SMS, e-mail, voz, vídeo) e ver o status | [references/envios.md](references/envios.md) |
| Disparo em massa e acompanhamento | [references/disparos.md](references/disparos.md) |
| Conta, plano, limites, diagnóstico, créditos, Pix e números de WhatsApp | [references/conta-e-cobranca.md](references/conta-e-cobranca.md) |
| Opt-in, lista de bloqueio e webhook de eventos | [references/lgpd-bloqueios-webhooks.md](references/lgpd-bloqueios-webhooks.md) |
| Todas as rotas e o método da chave de cada uma | [references/metodos.md](references/metodos.md) |
| O que significa cada erro | [references/erros.md](references/erros.md) |

Especificação completa (OpenAPI): https://oneclicksales.com.br/openapi-v1.json. Todo erro vem como
`{ "error": "<código>", "message": "<frase>" }`; mostre a `message` ao usuário.

## Janela de envio (horário de Brasília)

- WhatsApp e ligação: todos os dias, das 08:00 às 12:00 e das 13:30 às 22:00.
- SMS: de segunda a sábado, das 09:00 às 12:00 e das 13:30 às 22:00.
- Exceção: resposta no WhatsApp a quem escreveu nos últimos 7 dias.
- O que vale agora para a conta: `GET /v1/account/limits`.

Ligação e vídeo só para números do Brasil; WhatsApp e SMS aceitam números internacionais. Preços e planos em vigor:
https://oneclicksales.com.br/planos — não informe valores de memória; consulte o saldo e o custo pela API.
