Relatórios por dimensão
Cinco relatórios de período fechado: receita por seller, por categoria e por dia, clientes e frete.
Estes relatórios respondem a perguntas pontuais sobre um intervalo: quem vendeu mais, que categoria rendeu mais, como foi cada dia, quantos clientes são novos e quanto custou o frete por modalidade. Todos exigem from e to (YYYY-MM-DD, no máximo 366 dias) e devolvem dinheiro em centavos. Todos exigem o privilégio view_reports.
Receita por seller
/api/v1/admin/reports/revenue-by-vendorAdminReceita e comissão por seller
Parâmetros de consulta
fromstringobrigatórioInício do período,
YYYY-MM-DD, inclusive. Obrigatório.tostringobrigatórioFim do período,
YYYY-MM-DD, inclusive (o dia inteiro entra). Obrigatório. Não pode ser antes de from e o intervalo não pode passar de 366 dias.Exemplo de requisição
Resposta
200Relatório
Campos da resposta
vendorsarrayUm item por seller com venda no período.
vendors[].vendor_iduuidId do seller.
vendors[].vendor_namestringNome do seller.
vendors[].order_countintegerPedidos do seller.
vendors[].revenueintegerReceita bruta, em centavos.
vendors[].commission_amountintegerComissão retida pela loja, em centavos.
vendors[].net_revenueintegerReceita menos comissão, em centavos: o que fica com o seller.
vendors[].avg_order_valueintegerTicket médio do seller, em centavos.
vendors[].percentageintegerParticipação na receita total, em pontos-base (
2500 = 25,00%).Erros
| Status | Quando | Exemplo de corpo |
|---|---|---|
| 401 | Token ausente, inválido ou expirado. | {"error":"missing authorization header"} |
| 403 | O token não é de um usuário administrador. | {"error":"admin access required"} |
| 403 | O usuário é administrador, mas não tem o privilégio exigido. | {"error":"insufficient privileges","privilege_required_any":["view_reports"]} |
| 400 | from ou to ausente. | {"error":"from and to query parameters are required (format: 2006-01-02)"} |
| 400 | Data fora do formato YYYY-MM-DD. | {"error":"invalid from date format; expected YYYY-MM-DD","detail":"parsing time ..."} |
| 400 | from depois de to. | {"error":"from date must be before or equal to to date"} |
| 400 | Intervalo maior que um ano. | {"error":"date range must not exceed 1 year"} |
| 500 | Falha ao consultar o banco. | {"error":"failed to get revenue by vendor","detail":"..."} |
Receita por categoria
/api/v1/admin/reports/revenue-by-categoryAdminReceita por categoria de produto
Parâmetros de consulta
fromstringobrigatórioInício do período,
YYYY-MM-DD, inclusive. Obrigatório.tostringobrigatórioFim do período,
YYYY-MM-DD, inclusive (o dia inteiro entra). Obrigatório. Não pode ser antes de from e o intervalo não pode passar de 366 dias.Exemplo de requisição
Resposta
200Relatório
Campos da resposta
categoriesarrayDo maior para o menor faturamento.
categories[].category_idstringId da categoria (UUID) ou
uncategorized para produtos sem categoria.categories[].category_namestringNome da categoria.
categories[].product_countintegerProdutos distintos vendidos.
categories[].products_soldintegerUnidades vendidas.
categories[].revenueintegerReceita em centavos.
categories[].avg_priceintegerPreço médio por unidade, em centavos.
Erros
| Status | Quando | Exemplo de corpo |
|---|---|---|
| 401 | Token ausente, inválido ou expirado. | {"error":"missing authorization header"} |
| 403 | O token não é de um usuário administrador. | {"error":"admin access required"} |
| 403 | O usuário é administrador, mas não tem o privilégio exigido. | {"error":"insufficient privileges","privilege_required_any":["view_reports"]} |
| 400 | from ou to ausente. | {"error":"from and to query parameters are required (format: 2006-01-02)"} |
| 400 | Data fora do formato YYYY-MM-DD. | {"error":"invalid from date format; expected YYYY-MM-DD","detail":"parsing time ..."} |
| 400 | from depois de to. | {"error":"from date must be before or equal to to date"} |
| 400 | Intervalo maior que um ano. | {"error":"date range must not exceed 1 year"} |
| 500 | Falha ao consultar o banco. | {"error":"failed to get revenue by category","detail":"..."} |
Receita diária
/api/v1/admin/reports/daily-revenueAdminReceita dia a dia
Parâmetros de consulta
fromstringobrigatórioInício do período,
YYYY-MM-DD, inclusive. Obrigatório.tostringobrigatórioFim do período,
YYYY-MM-DD, inclusive (o dia inteiro entra). Obrigatório. Não pode ser antes de from e o intervalo não pode passar de 366 dias.Exemplo de requisição
Resposta
200Relatório
Campos da resposta
daily_revenuearrayUm item por dia do intervalo, inclusive dias sem venda (valores
0).daily_revenue[].datestringDia,
YYYY-MM-DD.daily_revenue[].revenueintegerReceita do dia, em centavos.
daily_revenue[].ordersintegerPedidos do dia.
daily_revenue[].avg_order_valueintegerTicket médio do dia, em centavos.
Erros
| Status | Quando | Exemplo de corpo |
|---|---|---|
| 401 | Token ausente, inválido ou expirado. | {"error":"missing authorization header"} |
| 403 | O token não é de um usuário administrador. | {"error":"admin access required"} |
| 403 | O usuário é administrador, mas não tem o privilégio exigido. | {"error":"insufficient privileges","privilege_required_any":["view_reports"]} |
| 400 | from ou to ausente. | {"error":"from and to query parameters are required (format: 2006-01-02)"} |
| 400 | Data fora do formato YYYY-MM-DD. | {"error":"invalid from date format; expected YYYY-MM-DD","detail":"parsing time ..."} |
| 400 | from depois de to. | {"error":"from date must be before or equal to to date"} |
| 400 | Intervalo maior que um ano. | {"error":"date range must not exceed 1 year"} |
| 500 | Falha ao consultar o banco. | {"error":"failed to get daily revenue","detail":"..."} |
Clientes
/api/v1/admin/reports/customersAdminClientes novos, recorrentes e maiores compradores
Parâmetros de consulta
fromstringobrigatórioInício do período,
YYYY-MM-DD, inclusive. Obrigatório.tostringobrigatórioFim do período,
YYYY-MM-DD, inclusive (o dia inteiro entra). Obrigatório. Não pode ser antes de from e o intervalo não pode passar de 366 dias.Exemplo de requisição
Resposta
200Relatório
Campos da resposta
new_customersintegerClientes cuja primeira compra caiu no período.
returning_customersintegerClientes que compraram no período e já tinham comprado antes.
total_customersintegerClientes distintos que compraram no período.
avg_order_valueintegerTicket médio, em centavos.
avg_lifetime_valueintegerGasto médio por cliente ao longo da vida, em centavos.
top_customersarrayMaiores compradores:
customer_id (UUID), customer_name (vazio se o cliente não tem nome), email, order_count, total_spent (centavos).Erros
| Status | Quando | Exemplo de corpo |
|---|---|---|
| 401 | Token ausente, inválido ou expirado. | {"error":"missing authorization header"} |
| 403 | O token não é de um usuário administrador. | {"error":"admin access required"} |
| 403 | O usuário é administrador, mas não tem o privilégio exigido. | {"error":"insufficient privileges","privilege_required_any":["view_reports"]} |
| 400 | from ou to ausente. | {"error":"from and to query parameters are required (format: 2006-01-02)"} |
| 400 | Data fora do formato YYYY-MM-DD. | {"error":"invalid from date format; expected YYYY-MM-DD","detail":"parsing time ..."} |
| 400 | from depois de to. | {"error":"from date must be before or equal to to date"} |
| 400 | Intervalo maior que um ano. | {"error":"date range must not exceed 1 year"} |
| 500 | Falha ao consultar o banco. | {"error":"failed to get customer stats","detail":"..."} |
Frete
/api/v1/admin/reports/shippingAdminUso e custo por forma de envio
Parâmetros de consulta
fromstringobrigatórioInício do período,
YYYY-MM-DD, inclusive. Obrigatório.tostringobrigatórioFim do período,
YYYY-MM-DD, inclusive (o dia inteiro entra). Obrigatório. Não pode ser antes de from e o intervalo não pode passar de 366 dias.Exemplo de requisição
Resposta
200Relatório
Campos da resposta
shippingarrayUm item por forma de envio usada. Pedidos sem forma registrada aparecem como
Unknown.shipping[].method_namestringNome da forma de envio.
shipping[].order_countintegerPedidos que usaram a forma.
shipping[].total_shipping_costintegerFrete total cobrado, em centavos.
shipping[].avg_shipping_costintegerFrete médio por pedido, em centavos.
shipping[].avg_delivery_daysintegerDias médios entre envio e entrega.
0 quando não há entrega registrada.Erros
| Status | Quando | Exemplo de corpo |
|---|---|---|
| 401 | Token ausente, inválido ou expirado. | {"error":"missing authorization header"} |
| 403 | O token não é de um usuário administrador. | {"error":"admin access required"} |
| 403 | O usuário é administrador, mas não tem o privilégio exigido. | {"error":"insufficient privileges","privilege_required_any":["view_reports"]} |
| 400 | from ou to ausente. | {"error":"from and to query parameters are required (format: 2006-01-02)"} |
| 400 | Data fora do formato YYYY-MM-DD. | {"error":"invalid from date format; expected YYYY-MM-DD","detail":"parsing time ..."} |
| 400 | from depois de to. | {"error":"from date must be before or equal to to date"} |
| 400 | Intervalo maior que um ano. | {"error":"date range must not exceed 1 year"} |
| 500 | Falha ao consultar o banco. | {"error":"failed to get shipping report","detail":"..."} |