Erro devolvido por todas as chamadas da SDK.
Toda função devolve {:ok, resultado} ou {:error, %ApiBrasil.Core.Error{}},
e a falha carrega a categoria em :kind — o equivalente Elixir às
subclasses de erro das demais SDKs da plataforma.
case ApiBrasil.Data.Consulta.cpf(client, %{"cpf" => "00000000000"}) do
{:ok, consulta} ->
ApiBrasil.Core.CreditResponse.data(consulta)
{:error, %ApiBrasil.Core.Error{kind: :insufficient_balance}} ->
IO.puts("Recarregue seus créditos")
{:error, %ApiBrasil.Core.Error{kind: :rate_limit} = error} ->
IO.puts("Aguarde #{error.retry_after}ms")
{:error, error} ->
IO.puts(Exception.message(error))
endAs variantes ! (ex: cpf!/3) levantam este erro em vez de devolver
a tupla.
Summary
Functions
Falha genérica da API.
Falha de autenticação.
HTTP 401 — token ausente, inválido ou expirado.
Mapeia um status HTTP + corpo de erro para o erro adequado, replicando a hierarquia de erros das demais SDKs.
Lê um header sem diferenciar maiúsculas de minúsculas.
HTTP 402 — saldo/créditos insuficientes.
Categoria correspondente a um status HTTP.
Lista todas as categorias de erro.
Falha de rede — nenhuma resposta recebida.
Falha antes da resposta — rede ou tempo limite.
Cria um erro da categoria informada.
HTTP 404/410 — não encontrado ou desativado.
Lê o header Retry-After — segundos ou data HTTP (IMF-fixdate) — e
devolve a espera em milissegundos.
HTTP 403 — sem permissão.
HTTP 429 — rate limit atingido.
HTTP 5xx — erro interno do gateway/provedor.
Falha por tempo limite excedido.
Tempo limite excedido.
Falha de validação (payload inválido).
HTTP 400/422 — payload inválido.
Types
@type kind() ::
:api
| :network
| :timeout
| :validation
| :authentication
| :insufficient_balance
| :permission
| :not_found
| :rate_limit
| :server
Categoria da falha.
:api— falha genérica da API;:network— falha de rede, a requisição pode não ter chegado ao servidor;:timeout— tempo limite excedido (nunca refeito automaticamente);:validation— HTTP 400/422, payload inválido;:authentication— HTTP 401, Bearer Token ausente, inválido ou expirado;:insufficient_balance— HTTP 402, saldo/créditos insuficientes;:permission— HTTP 403, sem permissão (ex: API exige conta PJ);:not_found— HTTP 404/410, recurso não encontrado ou desativado;:rate_limit— HTTP 429, limite de requisições atingido;:server— HTTP 5xx, erro interno do gateway/provedor.
@type t() :: %ApiBrasil.Core.Error{ __exception__: true, code: String.t() | nil, kind: kind(), message: String.t(), reason: term(), response: term(), retry_after: non_neg_integer() | nil, status: pos_integer() | nil }
Functions
Falha genérica da API.
Falha de autenticação.
HTTP 401 — token ausente, inválido ou expirado.
@spec from_api(pos_integer(), term(), map()) :: t()
Mapeia um status HTTP + corpo de erro para o erro adequado, replicando a hierarquia de erros das demais SDKs.
Lê um header sem diferenciar maiúsculas de minúsculas.
HTTP 402 — saldo/créditos insuficientes.
@spec kind_for_status(pos_integer()) :: kind()
Categoria correspondente a um status HTTP.
@spec kinds() :: [kind()]
Lista todas as categorias de erro.
Falha de rede — nenhuma resposta recebida.
Falha antes da resposta — rede ou tempo limite.
Cria um erro da categoria informada.
HTTP 404/410 — não encontrado ou desativado.
@spec parse_retry_after(map(), integer() | nil) :: non_neg_integer() | nil
Lê o header Retry-After — segundos ou data HTTP (IMF-fixdate) — e
devolve a espera em milissegundos.
HTTP 403 — sem permissão.
HTTP 429 — rate limit atingido.
HTTP 5xx — erro interno do gateway/provedor.
Falha por tempo limite excedido.
Tempo limite excedido.
Falha de validação (payload inválido).
HTTP 400/422 — payload inválido.