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-SecuritycomincludeSubDomainsepreload, uma política de segurança de conteúdo eX-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-Keypara 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.