moneyflydocs

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:

HeaderValor
client-idSua chave pública. Ex: mf_pk_live_AbCd...
client-secretSua chave secreta. Ex: mf_sk_live_XyZ...

Gerando suas credenciais

  1. Entre em app.moneyflybr.com/integrations
  2. Clique em "+ Nova chave"
  3. Escolha o ambiente:
    • Produção: PIX real, movimenta dinheiro de verdade
    • Teste: gera dados fake pra validar integração sem movimentar dinheiro
  4. Dê um nome (ex: "Backend API", "Integração site")
  5. 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ódigoMotivo
401 Unauthorizedclient-id ou client-secret ausente ou inválido
403 ForbiddenConta Moneyfly suspensa ou não aprovada no KYC
429 Too Many RequestsRate 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.