https://api.chargefy.io/v1.
Ter um SaaS, aplicativo ou marketplace próprio não significa que sua conta usa
o Chargefy for Platforms. Se você integra os dados e pagamentos da sua
própria empresa, siga apenas o fluxo de organização abaixo.
Autenticar o backend
Envie a chave no headerAuthorization usando Bearer. Não envie o header
Organization nesse fluxo.
Authorization é o formato recomendado. Use X-Chargefy-Api-Key quando um
proxy ou cliente HTTP já reservar o header Authorization. Se ambos forem
enviados, X-Chargefy-Api-Key tem prioridade.
Uma chave válida retorna a resposta normal do endpoint:
Escopos da organização
Os escopos são hierárquicos:
write inclui read, e admin inclui os dois.
Use o menor acesso necessário para cada integração.
Autenticar o navegador
O Chargefy.js usa uma chave publicável para identificar a organização e o ambiente:pk_* pode ficar no código do frontend, mas não autoriza nenhum recurso
sozinha. No Cadastro de cartão, ela precisa ser combinada com o
client_secret exato do setup_intent. Essa dupla permite somente:
- consultar
GET /v1/setup-intents/{id}; - confirmar
POST /v1/setup-intents/{id}/confirmcom um cartão novo; - tokenizar o cartão internamente para essa confirmação.
pk_test_*
não acessa um cadastro live e pk_live_* não acessa um cadastro de teste.
Chargefy for Platforms: operar organizações filhas
Uma organização filha é uma organização Chargefy independente operada pela sua plataforma. A chave do Chargefy for Platforms usa o escopo exclusivoplatform_admin.
Nos recursos que pertencem à organização filha, envie o ID dela no header
Organization:
Guarde o
id devolvido ao criar uma organização filha. Ele será usado na URL
para gerenciá-la e no header Organization para operar os recursos que
pertencem a ela.
Erros de autenticação
Toda resposta também inclui
X-Request-Id. Registre esse header junto do status
HTTP e de error.code para facilitar o diagnóstico. Consulte o
formato padrão de erros para ver o payload.
Segurança da integração
Uma integração segura separa as responsabilidades do browser, do seu backend e dos webhooks:Proteja as chaves secretas
- Nunca coloque uma chave
ch_test_ouch_live_em JavaScript público, aplicativo mobile, URL ou repositório. - Armazene chaves em um secret manager ou variável de ambiente protegida.
- Use o menor escopo necessário e separe credenciais por ambiente e serviço.
- Faça rotação criando uma chave nova, confirmando seu uso e só então revogando a anterior.
Mantenha dados de cartão fora do backend
No checkout hospedado, a Chargefy coleta os dados de pagamento. Em uma experiência customizada, carregue o Chargefy.js diretamente da origem oficial:confirmSetup(). O SDK troca
PAN e CVC por uma credencial de uso único internamente e confirma o
Cadastro de cartão com o
client_secret. Não copie o script para sua infraestrutura e não crie um
endpoint que receba os dados brutos do cartão.
Se sua página usa Content Security Policy, libere
https://api.chargefy.io em script-src e connect-src. Mantenha todo o fluxo
em HTTPS.
Trate o client_secret como credencial limitada
O client_secret permite ao browser consultar ou executar a ação de uma
Checkout Session ou de um Cadastro de cartão específico quando combinado com a
credencial pública esperada. Ele não substitui uma chave secreta nem autoriza
listas ou ações administrativas.
- Entregue-o apenas ao comprador daquela operação.
- Não registre o valor em analytics, mensagens de erro ou logs.
- Não reutilize um secret entre clientes, pedidos ou ambientes.
- Continue fazendo operações privilegiadas no backend com API key.
Verifique todo webhook
1
Leia o corpo bruto
A assinatura usa exatamente os bytes recebidos. Não faça parse e serialize
novamente antes de validar.
2
Valide assinatura e timestamp
Use
webhook-id, webhook-timestamp e webhook-signature com o secret do
endpoint. Prefira uma biblioteca compatível com Standard Webhooks.3
Deduplique pelo ID
Persista o
id (evt_...) com unicidade. Reentregas fazem parte do
contrato e não podem repetir a ação de negócio.4
Responda rápido
Depois de verificar e persistir ou enfileirar, devolva
2xx. Faça trabalho
pesado fora da request de entrega.Reduza dados sensíveis em logs
Não registre:- headers de autenticação, API keys ou secrets de webhook;
- PAN, CVC ou payload bruto do formulário de cartão;
client_secretetoken_idsem necessidade operacional;- documentos pessoais completos quando um identificador interno basta.
X-Request-Id, status HTTP, error.code e timestamp. O
recurso Request oferece um log estruturado da
API com credenciais e dados sensíveis mascarados.
Responda a credenciais expostas
1
Revogue e substitua
Revogue a credencial afetada e crie outra com o menor escopo possível.
2
Atualize os serviços
Troque o segredo em todos os consumidores e confirme o último uso da chave
anterior.
3
Investigue
Consulte requests e entregas de webhook para identificar atividade fora do
padrão.
4
Remova a origem do vazamento
Limpe logs, histórico e ferramentas de terceiros, registre o incidente e
ajuste os controles.
Próximos passos
Gerenciar API keys
Crie, acompanhe, expire, revogue e rotacione credenciais.
Webhooks
Verifique eventos assinados e lide com reentregas.
Erros
Entenda o envelope de erro e as regras de retry.
Checklist de go-live
Revise segurança e operação antes da primeira cobrança real.

