Autenticação
Como autenticar requisições na API Moneyfly usando client-id e client-secret.
Autenticação
Toda chamada à API /v1/* exige dois headers obrigatórios:
| Header | Valor |
|---|---|
client-id | Sua chave pública. Ex: mf_pk_live_AbCd... |
client-secret | Sua chave secreta. Ex: mf_sk_live_XyZ... |
Gerando suas credenciais
- Entre em app.moneyflybr.com/integrations
- Clique em "+ Nova chave"
- Escolha o ambiente:
- Produção: PIX real, movimenta dinheiro de verdade
- Teste: gera dados fake pra validar integração sem movimentar dinheiro
- Dê um nome (ex: "Backend API", "Integração site")
- Confirme
O client-secret é mostrado uma única vez. Copie e guarde num cofre de senhas (1Password, Bitwarden). Se perder, rotacione — o Moneyfly nunca mais mostra.
Exemplo básico
curl https://api.moneyflybr.com/v1/balance \
-H "client-id: mf_pk_live_AbCdEf..." \
-H "client-secret: mf_sk_live_XyZ123..."Boas práticas de segurança
Nunca exponha o client-secret no frontend. Jamais coloque em JavaScript do navegador, app mobile, ou qualquer lugar onde o usuário final tenha acesso. Ele vive só no seu backend.
Rotacione se suspeitar de vazamento. Basta gerar uma nova no painel — a anterior é invalidada na hora.
Use ambientes separados. Desenvolva e teste com chaves test_*, só use live_* em produção de verdade.
Limite quem tem acesso. Crie uma chave por serviço: se o backend API tem uma chave, o job do worker tem outra. Assim dá pra rastrear qual sistema fez cada chamada nos logs, e se uma vazar, você sabe o que rotacionar.
Respostas de erro
| Código | Motivo |
|---|---|
401 Unauthorized | client-id ou client-secret ausente ou inválido |
403 Forbidden | Conta Moneyfly suspensa ou não aprovada no KYC |
429 Too Many Requests | Rate limit excedido (100 req/min por chave por padrão) |
Exemplo de erro:
{
"error": "Error",
"message": "Credenciais inválidas."
}Detalhes completos em códigos de erro.
Rate limit
Por padrão, 100 requests por minuto por client-id. Se você precisar mais (integração de alto volume), manda email pra gente.
O rate limit é por chave, então se você usar várias chaves (uma por serviço), cada uma tem seu próprio orçamento.
Quando atinge o limit, a API responde 429 Too Many Requests com header Retry-After: <segundos>. Espere o tempo indicado antes de tentar de novo.