Referência

Segurança e conformidade

O que a API faz para proteger as suas chaves, o seu sistema e os dados das pessoas com quem a Torqyn conversa. Cada item descreve um mecanismo que está no ar.

Chaves

  • Formato: tq_test_ ou tq_live_, um id curto e o segredo. A chave de teste só abre a conta de teste, e a de produção só a de produção.
  • Só o resumo é guardado: a Torqyn guarda o SHA-256 do segredo, nunca o segredo. A chave inteira aparece uma vez, na criação, e a comparação é feita em tempo constante.
  • Menor acesso: escopos por chave, IPs ou faixas permitidos e validade de 30, 90 ou 365 dias. Qualquer falha responde o mesmo unauthorized.
  • Troca e emergência: troca sem queda (crie, troque, revogue) e "Revogar todas", que corta todas as chaves ativas na hora. O passo a passo para chave vazada está em Chaves e autenticação.
  • Força bruta: 20 chaves erradas em 10 minutos bloqueiam o IP por 15 minutos. Chave certa chamada de um IP fora da lista fica registrada como sinal de vazamento.
  • Só o dono: criar e revogar chaves e webhooks é permissão do dono da conta, e cada criação e revogação vai para a trilha de auditoria com o começo da chave, nunca o segredo.

Webhooks

  • Assinatura: HMAC-SHA256 do instante e do corpo, com um segredo whsec_ por endpoint, guardado cifrado (AES-256-GCM) e mostrado uma vez. Exemplos de conferência em Node, Python e PHP.
  • Janela de 300 segundos: o instante vai dentro da assinatura; recusar o que passou dessa diferença impede o reenvio de um corpo capturado.
  • Troca do segredo: 24 horas com as duas assinaturas, depois só a nova.
  • Destino: só https, sem credencial na URL, e nunca para rede privada, localhost ou endereço de metadados de nuvem: o IP é conferido na hora da conexão, a cada envio.
  • IP de saída: 54.94.20.141, para o seu firewall.

A plataforma

  • Teste separado de produção: duas contas, separadas pelo próprio banco de dados, como a de qualquer outra empresa. Na de teste, o canal é simulado e nada sai para ninguém.
  • Separação entre empresas: o banco de dados só entrega o que é da conta da chave. Recurso de outra conta responde como inexistente.
  • Transporte: use sempre https://platform.torqyn.com. A conexão é cifrada (TLS) pela Cloudflare até o nosso servidor, que não tem porta aberta para a internet.
  • Limites: por chave e por conta, com os cabeçalhos RateLimit-* (Limites).
  • Registro sem conteúdo: cada requisição fica 30 dias com o começo da chave, a rota (sem os valores do caminho), o status, a duração e o IP. Corpo e credencial nunca são guardados.
  • Idempotência: a mesma operação repetida acontece uma vez (Idempotência).

LGPD: quem é quem

  • A empresa cliente da Torqyn é a controladora dos dados das pessoas atendidas: é ela que decide para que os dados servem e com qual base legal. Quando um parceiro integra o sistema dele pela API, ele trata esses dados a pedido da empresa cliente, nos termos do contrato entre os dois.
  • A Torqyn é operadora: trata os dados em nome da empresa cliente, para prestar o serviço contratado.
  • Base legal e consentimento: definidos pela controladora. Mensagem de marketing só sai com consentimento registrado, com a origem e a evidência (POST /v1/contacts/{external_id}/consents); revogar não apaga o registro, que fica como prova do período em que valeu.
  • Direitos do titular: o pedido da pessoa é atendido pela controladora. O que chegar à Torqyn é encaminhado a ela, e apoiamos o atendimento, como diz a política de privacidade.
  • Retenção: os dados da empresa cliente ficam enquanto durar o contrato, ou pelo prazo que ela definir. O registro de requisições fica 30 dias, a resposta guardada pela idempotência 24 horas, e as cópias de segurança são apagadas em até 30 dias.
  • Suboperadores: a lista de quem trata dados com a Torqyn (servidores, mensagens, modelos de IA, e-mail) está na seção 6 da política de privacidade, e o caminho de cada dado na Central de confiança.

O que nunca sai pela API nem pelos webhooks

  • Documento (CPF, CNPJ) de uma pessoa: nem na leitura do contato, nem no webhook.
  • O texto das conversas no webhook: o evento diz o que aconteceu e onde, e o conteúdo fica na Torqyn.
  • Dado sensível, como a gravação e a transcrição de uma reunião: nenhuma rota da API o devolve.
  • Nome, telefone e e-mail no webhook, só se o endpoint escolheu levar.

E dentro da conversa

  • Cartão: número de cartão que alguém digite é mascarado antes de ser gravado.
  • Resposta retida: resposta da IA com documento, telefone ou e-mail de outra pessoa não sai; vai para o time decidir.
  • Identidade antes do dado: para falar do que é de uma pessoa (um horário marcado em outra conversa, o resultado de uma consulta ao sistema da empresa), a conversa precisa provar quem escreve: o próprio canal ou um código enviado ao e-mail do cadastro.
  • Descadastro acima de tudo: quem pediu para sair não recebe mensagem ativa em nenhum canal, e a API responde opted_out em vez de enviar.

Reportar uma vulnerabilidade

Escreva para contato@torqyn.com com o assunto "Segurança", o que encontrou e como reproduzir. O mesmo contato está em /.well-known/security.txt.

Para testar, use uma conta de teste sua. Não acesse, altere nem apague dado de outra empresa ou de outra pessoa, e não tente derrubar o serviço. Se um incidente puder gerar risco ou dano relevante, comunicamos as empresas clientes afetadas, os titulares e a ANPD, conforme a lei.