Pular para o conteúdo

Segurança

O que o Cord faz para proteger os seus dados e os dos seus clientes, com o nível de detalhe que uma equipe de segurança pede.

Esta página descreve controles que existem hoje no produto. Se a sua equipe precisar de algo que não aparece aqui, escreva para nós.

Dados em trânsito e em repouso

  • Todo o tráfego passa por HTTPS. O Cord envia Strict-Transport-Security com includeSubDomains e preload, uma política de segurança de conteúdo e X-Content-Type-Options: nosniff.
  • Os segredos que o Cord guarda em seu nome (credenciais de integrações, segredos de assinatura de webhooks) são criptografados com AES-256-GCM antes de chegar ao banco de dados. A chave de criptografia pode ser rotacionada sem perder o que foi criptografado com a anterior.
  • As senhas são armazenadas com Argon2id. Os tokens de sessão e as chaves de API são armazenados apenas como hash: se alguém lesse o banco de dados, não obteria uma credencial utilizável.

Onde os dados ficam e quem timbra

  • Banco de dados: PostgreSQL no Neon, região AWS us-east-1 (Virgínia, Estados Unidos).
  • Execução: as funções rodam na Vercel, região iad1 (Washington D.C., Estados Unidos).
  • Faturamento no México: a timbragem de CFDI 4.0 é feita pela Facturapi como PAC, com o CSD de cada negócio. O Cord cancela CFDI com o motivo do SAT e, em vendas a prazo, emite com o método PPD. Para cada pagamento em MXN de uma fatura PPD, o Cord timbra automaticamente o complemento de recebimento de pagamentos (CFDI tipo P), idempotente por pagamento.
  • Faturamento na Espanha: com o certificado do negócio enviado, o Cord gera os registros encadeados do Verifactu e os envia à AEAT, separadamente da emissão (em beta até o primeiro envio aceito). Sem certificado ou no plano Grátis, a fatura é emitida como pró-forma.
  • Certificações: o Cord não tem hoje SOC 2 nem ISO 27001. Veja auditorias de segurança.

Identidade e acesso

  • Login com senha, Google ou chaves de acesso, e SSO com SAML para equipes. Apple, em breve.
  • Uma senha nova tem pelo menos 10 caracteres, não contém o e-mail da conta e não aparece em vazamentos públicos. Essa verificação usa k-anonimato: só saem do Cord os primeiros 5 caracteres do hash SHA-1 da senha e a comparação é feita no Cord, então a senha nunca trafega.
  • Verificação em duas etapas (TOTP). A organização pode exigi-la de toda a equipe e definir um tempo máximo de inatividade.
  • As ações sensíveis (alterar a conta de repasse ou os dados de identidade para recebimentos) pedem que você se autentique de novo.
  • Funções por membro da equipe e domínios permitidos para convites.

Isolamento entre organizações

Cada consulta a dados de uma organização roda em um contexto que declara para qual organização ela trabalha, e um verificador automático na CI impede adicionar uma consulta fora desse contexto. Os links públicos (orçamento, fatura, captura pelo celular) resolvem a organização com um token e depois consultam dentro do mesmo contexto: o token nunca dá acesso por si só.

API

  • As chaves são mostradas uma única vez e armazenadas como hash.
  • Três tipos: secretas, restritas por recurso e publicáveis. As secretas e as restritas aceitam uma lista de IPs permitidos, podem expirar e são rotacionadas com período de carência.
  • Uma Secret Key que chega a partir de um navegador é rejeitada. As publicáveis só podem usar uma lista fixa de rotas e, em produção, apenas a partir dos domínios que você cadastrou.
  • Limites de requisições por chave e por IP, e Idempotency-Key para tentar de novo sem duplicar.

Webhooks

  • Cada aviso vai assinado com HMAC-SHA256 sobre o corpo e um carimbo de data e hora (X-Cord-Signature-V1), para que o seu servidor rejeite avisos alterados ou repetidos. Os SDKs verificam a assinatura e a idade por você.
  • O Cord só entrega para URLs https:// de hosts públicos; nunca para endereços internos.

Gerador de orçamentos incorporado (Cord Elements)

  • O orçamento fica em um iframe do Cord com origem própria: a sua página não pode lê-lo nem modificá-lo, e o Cord não pode ler a sua página.
  • Somente os domínios que você cadastra podem enquadrá-lo. Sem domínios cadastrados, ele é exibido somente para leitura, sem aprovar, assinar nem pagar, e sem enviar dados para a página anfitriã.
  • Os estilos personalizados passam por um validador com listas fechadas: ele não aceita URLs externas nem regras que ocultem ou cubram o conteúdo.

Pagamentos

Os dados do cartão são capturados pelo formulário do processador de pagamentos no próprio domínio dele. O Cord nunca recebe nem armazena o número do cartão.

Verificação de identidade para recebimentos

  • As fotos dos documentos de identificação são validadas no dispositivo antes de serem enviadas, e os metadados delas (incluindo a localização GPS) são removidos, mantendo apenas a orientação.
  • O link para tirar a foto pelo celular fica vinculado ao primeiro dispositivo que o usa, tem um limite de tentativas e não é registrado em ferramentas de analytics.

Log de auditoria

Criar, editar, rotacionar e revogar chaves, as alterações de segurança da organização, os pagamentos e outras ações sensíveis ficam registrados com quem, quando, o IP e o navegador. Os administradores o consultam em Configurações › Avançado › Auditoria.

Retenção

Dado Por quanto tempo é mantido
Histórico de entregas de webhooks 30 dias (as que falharam, 90)
Sessões de captura de identidade pelo celular São excluídas uma hora depois de encerradas
Evidências da verificação de identidade para recebimentos 5 anos a partir do envio

Você pode exportar os dados da sua organização nas Configurações e excluir a sua conta a qualquer momento.

Reportar uma vulnerabilidade

Escreva para security@flouvia.com. Escopo, compromissos e porto seguro em Reportar vulnerabilidades; o contato também está em /.well-known/security.txt.