Segurança
O número do cartão não passa pelo seu servidor.
O que já é parte do desenho da API e o que ainda depende do provedor e do lançamento.
No desenho da API hoje
- Dados de cartão fora dos nossos servidores, em produção. A API só aceita o token gerado no navegador pelos campos de cartão (ou pelo SDK do provedor, em produção). Qualquer campo extra, como um número de cartão, é descartado na validação. No sandbox, que usa um provedor simulado, a tokenização passa pela nossa API, por isso ele só aceita cartões de teste.
- Campos de cartão em iframe de outra origem. No checkout hospedado e no SDK, o número e o CVV vivem numa página nossa. O JavaScript do site da plataforma não consegue lê-los, e os campos só aparecem nos domínios que a plataforma cadastrou.
- Tokens de uso único. O cartão vira um token que vale uma vez e por 15 minutos. Número e CVV não são guardados nem devolvidos pela API, e os campos se limpam depois da tokenização.
- Cabeçalhos de segurança no checkout. A página de pagamento não pode ser embutida em outros sites e restringe para onde o navegador pode enviar dados (Content-Security-Policy).
- Limite de tentativas por origem, por chave e por link, contra teste de cartões em massa.
- Chaves de API guardadas como hash. O segredo é mostrado uma vez, na emissão, e pode ser revogado a qualquer momento.
- Sandbox isolado. A chave de teste usa um provedor simulado e dados em conta separada da produção.
- Isolamento entre plataformas. Uma conta nunca enxerga cobranças ou recebedores de outra.
- Idempotência. Repetir uma criação com a mesma chave não cobra duas vezes.
- Webhooks do provedor não são confiados cegamente. Quando o provedor não permite validar a autenticidade do aviso, tratamos o aviso só como gatilho e confirmamos o status direto no provedor antes de registrar um pagamento.
- Webhooks assinados. Cada aviso leva uma assinatura HMAC-SHA256 com carimbo de tempo, o segredo fica cifrado em repouso e pode ser trocado sem perder entregas. Só enviamos para endereços https públicos: redes internas e localhost são barrados no cadastro e a cada envio.
- Bloqueio imediato. Suspender uma plataforma derruba todas as chaves dela na hora.
Dinheiro
Não somos banco. A intenção é operar sobre a infraestrutura de instituições de pagamento autorizadas pelo Banco Central, com o dinheiro dos recebedores em estrutura segregada por titular, e não misturado numa conta nossa.
Ainda não disponível
- Certificações e auditorias. Nenhuma foi concluída; não declaramos nenhuma.
- Em produção a tokenização usará o SDK do provedor de pagamento. Hoje só o sandbox tokeniza por conta própria.
- Limite de requisições em toda a API (hoje só nos endpoints de cartão) e rotação da chave que cifra os segredos de webhook.
- Página de status pública.
Encontrou uma falha?
Um canal para reporte de vulnerabilidades será publicado aqui antes do lançamento. Até lá, avise pelo contato informado no credenciamento.