GET
/
consultas
/
faturamento
Faturamento detalhado
curl --request GET \
  --url https://api.periciadecredito.com.br/consultas/faturamento \
  --header 'x-access-token: <api-key>'
{
  "periodo": {
    "start_date": "2026-04-01",
    "end_date": "2026-04-30",
    "dias": 30
  },
  "total": 1264.5,
  "queries_realizadas": 258,
  "ticket_medio": 4.9,
  "media_diaria": {
    "quantidade": 8.6,
    "valor": 42.15
  },
  "dias_com_consumo": 27,
  "dias_sem_consumo": 3,
  "dia_pico": {
    "data": "2026-04-15",
    "quantidade": 22,
    "valor": 107.8
  },
  "detalhes": [
    {
      "query_id": 1,
      "query_name": "kyc_pf",
      "query_display_name": "KYC — Pessoa Física",
      "preco": 4.9,
      "quantidade": 180,
      "subtotal": 882,
      "percentual_valor": 69.75,
      "percentual_quantidade": 69.77
    },
    {
      "query_id": 3,
      "query_name": "scr_pf",
      "query_display_name": "SCR — Pessoa Física",
      "preco": 12.5,
      "quantidade": 30,
      "subtotal": 375,
      "percentual_valor": 29.65,
      "percentual_quantidade": 11.63
    }
  ],
  "consultasPorDia": [
    {
      "data": "2026-04-01",
      "quantidade": 0,
      "valor": 0,
      "consultas": []
    },
    {
      "data": "2026-04-15",
      "quantidade": 22,
      "valor": 107.8,
      "consultas": [
        {
          "query_id": 1,
          "query_name": "kyc_pf",
          "query_display_name": "KYC — Pessoa Física",
          "preco": 4.9,
          "quantidade": 15,
          "subtotal": 73.5
        }
      ]
    }
  ],
  "nao_cobradas": {
    "com_erro": 4,
    "reembolsadas": 2
  }
}

Formato das datas

Os parâmetros start_date e end_date devem estar no formato YYYY-MM-DD e ambos são obrigatórios. O período máximo por requisição é de 366 dias.
GET /consultas/faturamento?start_date=2026-04-01&end_date=2026-04-30
Para consultar um mês completo, use o primeiro e último dia do mês. Exemplo: start_date=2026-04-01&end_date=2026-04-30.

O que entra no cálculo

Somente execuções com status: success e não reembolsadas entram no faturamento. O preço usado é o snapshot gravado no momento de cada execução (query_price) — se o preço da consulta mudar depois, faturamentos passados não são reescritos. O campo nao_cobradas mostra, para contexto, quantas execuções do período ficaram de fora e por quê:
"nao_cobradas": { "com_erro": 4, "reembolsadas": 2 }

Estrutura da resposta

periodo
object
start_date, end_date e dias (quantidade de dias do período, inclusivo).
total
number
Valor total faturado no período.
queries_realizadas
integer
Quantidade total de consultas cobradas no período.
ticket_medio
number
total / queries_realizadas.
media_diaria
object
Médias de quantidade e valor considerando todos os dias do período — inclusive os dias sem nenhum consumo.
dias_com_consumo
integer
Quantos dias do período tiveram ao menos 1 consulta cobrada.
dias_sem_consumo
integer
Quantos dias do período não tiveram nenhuma consulta cobrada.
dia_pico
object | null
O dia com maior valor faturado no período (data, quantidade, valor). null quando não houve consumo em nenhum dia.
detalhes
array
Detalhamento agregado por consulta no período (uma linha por query_id), ordenado por subtotal decrescente. Cada item traz preco, quantidade, subtotal, e a participação percentual da consulta no total (percentual_valor, percentual_quantidade).
consultasPorDia
array
Detalhamento dia a dia, em ordem cronológica. Todos os dias do período aparecem, mesmo os sem consumo (quantidade: 0, consultas: []) — útil para montar um gráfico contínuo sem precisar preencher os buracos no seu código.
nao_cobradas
object
com_erro (execuções com falha no provedor) e reembolsadas (execuções bem-sucedidas mas reembolsadas administrativamente) — não entram em total nem em detalhes.

Exemplo de uso: gráfico de consumo diário

Node.js
async function graficoDoMes(token, startDate, endDate) {
  const resp = await fetch(
    `https://api.periciadecredito.com.br/consultas/faturamento?start_date=${startDate}&end_date=${endDate}`,
    { headers: { "x-access-token": token } },
  );

  const { consultasPorDia, total, dia_pico } = await resp.json();

  // Já vem com todos os dias preenchidos — direto para o eixo X do gráfico
  const eixoX = consultasPorDia.map((d) => d.data);
  const eixoY = consultasPorDia.map((d) => d.valor);

  console.log(`Total do período: R$ ${total}`);
  if (dia_pico) {
    console.log(`Pico: ${dia_pico.data} (R$ ${dia_pico.valor})`);
  }

  return { eixoX, eixoY };
}

Authorizations

x-access-token
string
header
required

Token JWT retornado pelo endpoint POST /auth/login. Inclua este header em todas as requisições autenticadas.

Query Parameters

start_date
string<date>
required

Início do período (formato: YYYY-MM-DD)

end_date
string<date>
required

Fim do período (formato: YYYY-MM-DD)

Response

Faturamento detalhado do período solicitado.

periodo
object
total
number

Valor total faturado no período (apenas execuções cobradas)

Example:

1264.5

queries_realizadas
integer

Quantidade total de consultas cobradas no período

Example:

258

ticket_medio
number

total / queries_realizadas

Example:

4.9

media_diaria
object

Médias considerando TODOS os dias do período, inclusive os sem consumo

dias_com_consumo
integer

Dias do período com pelo menos 1 consulta cobrada

Example:

27

dias_sem_consumo
integer

Dias do período sem nenhuma consulta cobrada

Example:

3

dia_pico
object

Dia com maior valor faturado no período. null quando não houve consumo.

detalhes
object[]

Detalhamento agregado por consulta no período, ordenado por subtotal decrescente

consultasPorDia
object[]

Detalhamento dia a dia do período, em ordem cronológica — todos os dias aparecem, mesmo os sem consumo (quantidade: 0)

nao_cobradas
object

Execuções do período que NÃO entram no faturamento — contexto adicional