Focus Chat
API & Documentação

Área do desenvolvedor.

Tudo o que seu time técnico precisa para integrar a Focus Chat: autenticação simples, endpoints documentados, webhooks em tempo real e exemplos prontos pra colar no terminal.

Autenticação

Cada canal tem seu token.

Nossa autenticação é simples: cada canal conectado na plataforma gera um access-token próprio. Basta colocar no header de cada requisição e está tudo pronto.

  1. 01

    Acesse o painel e abra o canal que quer integrar.

  2. 02

    Copie o access-token do canal (seção "Integrações").

  3. 03

    Envie no header access-token em cada chamada.

Veja na prática como copiar o token do canal
Endpoint em destaque

O que você mais vai usar: enviar texto.

90% das integrações começam aqui — disparar uma mensagem de texto para um número. Abaixo o exemplo completo com as três respostas possíveis.

POST/core/v2/api/chats/send-text

Envia uma mensagem de texto para um número ou contactId. Suporta mensagem interna (isWhisper), forçar envio, verificar contato, delay e preview de link.

O campo "contactId" é opcional — use apenas quando não estiver enviando "number".

Requisição
curl
curl --location 'https://api.focuschat.com.br/core/v2/api/chats/send-text' \
  --header 'access-token: TOKEN_DO_CANAL' \
  --header 'Content-Type: application/json' \
  --data '{
    "number": "5577981338467",
    "message": "Olá! Seu pedido foi confirmado.",
    "isWhisper": false,
    "forceSend": true,
    "verifyContact": false,
    "delayInSeconds": 0,
    "linkPreview": true
  }'
Respostas
202 · Aceita e enfileirada
{
  "status": "200",
  "msg": "Sucesso",
  "currentChatId": "string",
  "messageSentId": "string",
  "messagesSentIds": [
    "string"
  ]
}
400 · Erro de validação
{
  "status": "400",
  "msg": "Campo abc invalido",
  "errorCode": "Campo abc invalido"
}
500 · Erro interno
{
  "status": "500",
  "msg": "Ocorreu um erro interno na aplicação",
  "errorCode": "SYSTEM_001"
}
Enviar template com pagamento

Template Meta com botão de PIX, boleto e link.

Perfeito para cobranças: o cliente recebe o template aprovado pela Meta e já pode pagar por PIX, copiar código de barras ou abrir o boleto — tudo dentro da conversa do WhatsApp.

POST/core/v2/api/chats/send-template

Envia um template (aprovado pela Meta) com botão order_details, trazendo PIX dinâmico, boleto e link de pagamento em uma única mensagem.

Precisa do templateId já aprovado na Meta. Valores em centavos usam offset:100 (50000 = R$ 500,00).

Fique atento
  • O template precisa ser do tipo Detalhes do pedido (order_details) no painel da Meta. Templates comuns não aceitam o botão de pagamento.
  • Só é possível enviar 2 métodos de pagamento por vez. Deixamos os 3 no exemplo apenas como referência — escolha 2 no payment_settings antes de disparar.
Requisição
curl
curl --location 'https://api.focuschat.com.br/core/v2/api/chats/send-template' \
  --header 'access-token: TOKEN_DO_CANAL' \
  --header 'Content-Type: application/json' \
  --data '{
    "number": "5577981338467",
    "templateId": "ID_DO_TEMPLATE",
    "templateComponents": [
      {
        "type": "body",
        "parameters": [
          { "type": "text", "text": "VARIAVEL 1" },
          { "type": "text", "text": "VARIAVEL 2" },
          { "type": "text", "text": "VARIAVEL 3" },
          { "type": "text", "text": "VARIAVEL 4" }
        ]
      },
      {
        "type": "button",
        "sub_type": "order_details",
        "index": 0,
        "parameters": [
          {
            "type": "action",
            "action": {
              "order_details": {
                "reference_id": "1234",
                "type": "digital-goods",
                "payment_type": "br",
                "payment_settings": [
                  {
                    "type": "pix_dynamic_code",
                    "pix_dynamic_code": {
                      "code": "9999999990br.gov.bcb.pix2548pix.example.com...",
                      "merchant_name": "Nome do Cliente",
                      "key": "99988888888",
                      "key_type": "CPF"
                    }
                  },
                  {
                    "type": "boleto",
                    "boleto": {
                      "digitable_line": "461911100000000000042310..."
                    }
                  },
                  {
                    "type": "payment_link",
                    "payment_link": {
                      "uri": "https://www.asaas.com/b/pdf/fffffff"
                    }
                  }
                ],
                "currency": "BRL",
                "total_amount": { "value": 50000, "offset": 100 },
                "order": {
                  "status": "pending",
                  "tax": { "value": 0, "offset": 100, "description": "optional text" },
                  "items": [
                    {
                      "retailer_id": "1234567",
                      "name": "nomedoitem",
                      "amount": { "value": 50000, "offset": 100 },
                      "quantity": 1
                    }
                  ],
                  "subtotal": { "value": 50000, "offset": 100 }
                }
              }
            }
          }
        ]
      }
    ],
    "forceSend": true,
    "verifyContact": false
  }'
Comunidade

Entra pro nosso Discord de devs.

Canal só pra desenvolvedores que integram com a Focus Chat. Tira dúvidas direto com o time, acompanha changelog antes, troca figurinha com outros integradores.

Dúvidas de integração?

Fale direto com nosso time técnico. Atendemos desde planejamento de arquitetura até debug de edge cases.

Enviar mensagem