Skip to main content

Formato de Erro

Todos os erros seguem o mesmo formato JSON:
{
  "error": {
    "code": "error_code",
    "message": "Descrição legível do erro"
  }
}
Alguns erros incluem campos extras com contexto adicional:
{
  "error": {
    "code": "insufficient_balance",
    "message": "Insufficient balance",
    "available_balance": 50.00
  }
}

Erros de Autenticação

StatusCódigoDescrição
401unauthorizedHeader Authorization ausente
401invalid_api_keyChave inválida ou sem prefixo flare_
403api_key_disabledChave desativada no dashboard
429rate_limit_exceededLimite de requisições excedido

Erros de Cobranças

StatusCódigoDescrição
400invalid_amountamount deve ser inteiro positivo em centavos
400missing_idID da cobrança não informado
404charge_not_foundCobrança não encontrada

Erros de Saques

StatusCódigoDescrição
400invalid_amountValor deve ser positivo
400missing_pix_keypix_key e pix_key_type são obrigatórios
400invalid_pix_key_typeTipo inválido. Aceitos: cpf, cnpj, email, phone, random
400below_minimumValor abaixo do mínimo de R$ 30,00
400insufficient_balanceSaldo insuficiente (retorna available_balance)
400fee_exceeds_amountTaxa maior que o valor solicitado

Boas Práticas

Sempre verifique o campo error.code (não error.message) para tratar erros programaticamente, pois as mensagens podem mudar.
const response = await fetch('https://api.flarepayments.com/v1/charges', {
  method: 'POST',
  // ...
});

if (!response.ok) {
  const { error } = await response.json();

  switch (error.code) {
    case 'insufficient_balance':
      console.log(`Saldo disponível: R$ ${error.available_balance}`);
      break;
    case 'rate_limit_exceeded':
      // Aguardar e tentar novamente
      break;
    default:
      console.error(error.message);
  }
}