Referência

Relatórios

Os números do negócio por período. Os relatórios são pesados: a empresa só pode ter dois a correr ao mesmo tempo (ver Limites).

Os números do negócio por período. Os relatórios são pesados: a empresa só pode ter dois a correr ao mesmo tempo (ver Limites).

OperaçãoO que faz
GET /api/relatorios/mapas/{codigo}Um mapa de gestão (o código diz qual) de um período.
GET /api/relatorios/caixas/{id}/resumoO resumo de uma sessão de caixa.
GET /api/visao-360A Visão 360° do negócio: vendas, dinheiro, dívidas, stock e impostos num só pedido.
GET /api/relatorios/clientes/rankingOs melhores clientes do período, por valor vendido.
GET /api/relatorios/documentosOs documentos emitidos num período, com totais, por tipo, cliente, utilizador, estabelecimento e estado.
GET /api/relatorios/ivaO resumo do IVA do período: base e imposto por taxa.
GET /api/relatorios/pagamentosOs pagamentos recebidos no período, por método.
GET /api/relatorios/pendentesAs facturas pendentes de pagamento, com o escalão de atraso.
GET /api/relatorios/produtos-vendidosOs artigos vendidos no período, com quantidade, valor, custo e lucro.
GET /api/relatorios/produtos/classificacao-abcA classificação ABC dos artigos pelo valor vendido.
GET /api/relatorios/produtos/rankingOs artigos mais (ou menos) vendidos do período.
GET /api/relatorios/produtos/{produtoId}/ultimas-vendasAs últimas vendas de um artigo.
GET /api/relatorios/resumo-facturacaoA facturação de hoje, da semana, do mês e do ano (descontadas as notas de crédito).
GET /api/relatorios/vendas-mensaisAs vendas de cada mês de um ano, por artigo.
GET/api/relatorios/mapas/{codigo}#

Um mapa de gestão (o código diz qual) de um período.

  • Permissão RelatoriosDetalhados.Ler

inicio, fim e lojaId filtram. O mapa de custos com pessoal só se vê com acesso a dados sensíveis (ver Dados sensíveis).

Parâmetros

NomeOndeTipoObrigatório
codigono caminhotextosim
iniciona pesquisadata (AAAA-MM-DD)
fimna pesquisadata (AAAA-MM-DD)
lojaIdna pesquisaidentificador (UUID)

Resposta (200 · JSON)

CampoTipoSignificado
codigotextoO código curto.
titulotexto
notatexto ou nulo
iniciodata (AAAA-MM-DD)
fimdata (AAAA-MM-DD)
colunaslista de objectos
colunas[].chavetexto
colunas[].rotulotexto
colunas[].tipotexto
linhaslista de objectos
totaislista de objectos
totais[].rotulotexto
totais[].valornúmeroO valor.
totais[].tipotexto
truncadoverdadeiro/falso

Pedido

curl
curl 'https://<endereço-da-API>/api/relatorios/mapas/<codigo>' \
  -H 'X-Api-Key: <a-sua-chave>'
GET/api/relatorios/caixas/{id}/resumo#

O resumo de uma sessão de caixa.

  • Permissão Caixa.HistoricoLer

Parâmetros

NomeOndeTipoObrigatório
idno caminhoidentificador (UUID)sim

Pedido

curl
curl 'https://<endereço-da-API>/api/relatorios/caixas/<id>/resumo' \
  -H 'X-Api-Key: <a-sua-chave>'
GET/api/visao-360#

A Visão 360° do negócio: vendas, dinheiro, dívidas, stock e impostos num só pedido.

  • Permissão Visao360.Ler

A parte da equipa (recursos humanos) só vem com uma chave de acesso a dados sensíveis; sem ela, o campo equipa vai vazio.

Parâmetros

NomeOndeTipoObrigatório
periodona pesquisatexto
estabelecimentoIdna pesquisaidentificador (UUID)

Pedido

curl
curl 'https://<endereço-da-API>/api/visao-360' \
  -H 'X-Api-Key: <a-sua-chave>'
GET/api/relatorios/clientes/ranking#

Os melhores clientes do período, por valor vendido.

  • Permissão RelatoriosDetalhados.Ler

top limita a lista (por omissão 50).

Parâmetros

NomeOndeTipoObrigatório
dataIniciona pesquisadata (AAAA-MM-DD)sim
dataFimna pesquisadata (AAAA-MM-DD)sim
topna pesquisanúmero inteiro
lojaIdna pesquisaidentificador (UUID)

Resposta (200 · JSON)

CampoTipoSignificado
[].posicaonúmero inteiro
[].clienteIdidentificador (UUID)O cliente do documento.
[].clientetexto
[].totalVendasnúmero

Pedido

curl
curl 'https://<endereço-da-API>/api/relatorios/clientes/ranking' \
  -H 'X-Api-Key: <a-sua-chave>'
GET/api/relatorios/documentos#

Os documentos emitidos num período, com totais, por tipo, cliente, utilizador, estabelecimento e estado.

  • Permissão DocumentosEmitidos.Ler

dataInicio e dataFim são obrigatórias (AAAA-MM-DD, inclusivas, hora de Angola).

A resposta é uma página: itens e proximoCursor. Ver Paginação.

Parâmetros

NomeOndeTipoObrigatório
dataIniciona pesquisadata (AAAA-MM-DD)sim
dataFimna pesquisadata (AAAA-MM-DD)sim
tipoDocumentoIdna pesquisaidentificador (UUID)
clienteIdna pesquisaidentificador (UUID)
usuarioIdna pesquisaidentificador (UUID)
lojaIdna pesquisaidentificador (UUID)
estadona pesquisatexto
cursorna pesquisatexto
tamanhona pesquisanúmero inteiro

Resposta (200 · JSON)

CampoTipoSignificado
itenslista de objectosOs registos desta página.
itens[].ididentificador (UUID)Identificador único (UUID).
itens[].siglaDocumentotextoA sigla do tipo («FT», «FR», «NC»…).
itens[].tipoDescricaotexto
itens[].numerotextoO número legível, atribuído pelo servidor («FR LC2026/25»).
itens[].datadata e hora (ISO 8601)A data e hora (UTC).
itens[].clienteIdidentificador (UUID)O cliente do documento.
itens[].clienteNometextoO nome do cliente tal como estava na emissão.
itens[].usuarioIdidentificador (UUID) ou nulo
itens[].estadotextoO estado actual.
itens[].motivoAnulacaotexto ou nuloO motivo, quando o documento foi anulado.
itens[].referenciatexto ou nulo
itens[].subtotalnúmeroA soma das linhas, já com desconto e sem imposto.
itens[].impostonúmero
itens[].descontonúmeroO desconto habitual do cliente, em percentagem.
itens[].retencaonúmero
itens[].totalGeralnúmeroO total do documento: subtotal + imposto − retenção + outros encargos.
itens[].pagonúmero
itens[].porPagarnúmero
proximoCursortexto ou nuloO cursor da página seguinte; nulo quando não há mais. Ver Paginação.

Pedido

curl
curl 'https://<endereço-da-API>/api/relatorios/documentos' \
  -H 'X-Api-Key: <a-sua-chave>'
GET/api/relatorios/iva#

O resumo do IVA do período: base e imposto por taxa.

  • Permissão RelatoriosDetalhados.Ler

Parâmetros

NomeOndeTipoObrigatório
dataIniciona pesquisadata (AAAA-MM-DD)sim
dataFimna pesquisadata (AAAA-MM-DD)sim

Resposta (200 · JSON)

CampoTipoSignificado
[].taxanúmeroA taxa, em percentagem.
[].motivoIsencaotexto ou nulo
[].incidencianúmero
[].impostonúmero

Pedido

curl
curl 'https://<endereço-da-API>/api/relatorios/iva' \
  -H 'X-Api-Key: <a-sua-chave>'
GET/api/relatorios/pagamentos#

Os pagamentos recebidos no período, por método.

  • Permissão RelatoriosDetalhados.Ler

Parâmetros

NomeOndeTipoObrigatório
dataIniciona pesquisadata (AAAA-MM-DD)sim
dataFimna pesquisadata (AAAA-MM-DD)sim
usuarioIdna pesquisaidentificador (UUID)
lojaIdna pesquisaidentificador (UUID)

Resposta (200 · JSON)

CampoTipoSignificado
[].datadata e hora (ISO 8601)A data e hora (UTC).
[].documentotexto
[].tipoDocumentotexto
[].metodotexto
[].valornúmeroO valor.
[].sentidotexto
[].usuarioIdidentificador (UUID) ou nulo

Pedido

curl
curl 'https://<endereço-da-API>/api/relatorios/pagamentos' \
  -H 'X-Api-Key: <a-sua-chave>'
GET/api/relatorios/pendentes#

As facturas pendentes de pagamento, com o escalão de atraso.

  • Permissão DocumentosEmitidos.Ler

Parâmetros

NomeOndeTipoObrigatório
clienteIdna pesquisaidentificador (UUID)

Resposta (200 · JSON)

CampoTipoSignificado
[].ididentificador (UUID)Identificador único (UUID).
[].numerotextoO número legível, atribuído pelo servidor («FR LC2026/25»).
[].datadata e hora (ISO 8601)A data e hora (UTC).
[].clienteIdidentificador (UUID)O cliente do documento.
[].clienteNometextoO nome do cliente tal como estava na emissão.
[].numeroContribuintetexto ou nuloO número de contribuinte (NIF).
[].totalGeralnúmeroO total do documento: subtotal + imposto − retenção + outros encargos.
[].pagonúmero
[].porPagarnúmero
[].diasEmAbertonúmero inteiro
[].escalaotextoO escalão de atraso: «A vencer», «0-30», «31-60» ou «61+».

Pedido

curl
curl 'https://<endereço-da-API>/api/relatorios/pendentes' \
  -H 'X-Api-Key: <a-sua-chave>'
GET/api/relatorios/produtos-vendidos#

Os artigos vendidos no período, com quantidade, valor, custo e lucro.

  • Permissão RelatoriosDetalhados.Ler

Parâmetros

NomeOndeTipoObrigatório
dataIniciona pesquisadata (AAAA-MM-DD)sim
dataFimna pesquisadata (AAAA-MM-DD)sim
usuarioIdna pesquisaidentificador (UUID)
clienteIdna pesquisaidentificador (UUID)
lojaIdna pesquisaidentificador (UUID)

Resposta (200 · JSON)

CampoTipoSignificado
[].produtoIdidentificador (UUID)O artigo.
[].produtotexto
[].quantidadenúmeroA quantidade.
[].totalVendasnúmero
[].totalImpostonúmero
[].totalRetencaonúmero
[].totalCustonúmero
[].lucronúmero

Pedido

curl
curl 'https://<endereço-da-API>/api/relatorios/produtos-vendidos' \
  -H 'X-Api-Key: <a-sua-chave>'
GET/api/relatorios/produtos/classificacao-abc#

A classificação ABC dos artigos pelo valor vendido.

  • Permissão RelatoriosDetalhados.Ler

limiteA e limiteB são as fracções acumuladas (por omissão 0,8 e 0,9).

Parâmetros

NomeOndeTipoObrigatório
dataIniciona pesquisadata (AAAA-MM-DD)sim
dataFimna pesquisadata (AAAA-MM-DD)sim
limiteAna pesquisanúmero
limiteBna pesquisanúmero
lojaIdna pesquisaidentificador (UUID)

Resposta (200 · JSON)

CampoTipoSignificado
[].produtoIdidentificador (UUID)O artigo.
[].produtotexto
[].quantidadenúmeroA quantidade.
[].vendasnúmero
[].percentagemIndividualnúmero
[].percentagemAcumuladanúmero
[].classetexto

Pedido

curl
curl 'https://<endereço-da-API>/api/relatorios/produtos/classificacao-abc' \
  -H 'X-Api-Key: <a-sua-chave>'
GET/api/relatorios/produtos/ranking#

Os artigos mais (ou menos) vendidos do período.

  • Permissão RelatoriosDetalhados.Ler

ordem é mais (por omissão) ou menos; incluirSemVendas=true inclui os que não venderam nada.

Parâmetros

NomeOndeTipoObrigatório
dataIniciona pesquisadata (AAAA-MM-DD)sim
dataFimna pesquisadata (AAAA-MM-DD)sim
ordemna pesquisatexto
topna pesquisanúmero inteiro
incluirSemVendasna pesquisaverdadeiro/falso
lojaIdna pesquisaidentificador (UUID)

Resposta (200 · JSON)

CampoTipoSignificado
[].posicaonúmero inteiro
[].produtoIdidentificador (UUID)O artigo.
[].produtotexto
[].quantidadenúmeroA quantidade.
[].totalVendasnúmero

Pedido

curl
curl 'https://<endereço-da-API>/api/relatorios/produtos/ranking' \
  -H 'X-Api-Key: <a-sua-chave>'
GET/api/relatorios/produtos/{produtoId}/ultimas-vendas#

As últimas vendas de um artigo.

  • Permissão RelatoriosDetalhados.Ler

Parâmetros

NomeOndeTipoObrigatório
produtoIdno caminhoidentificador (UUID)sim
topna pesquisanúmero inteiro

Resposta (200 · JSON)

CampoTipoSignificado
[].documentoIdidentificador (UUID)
[].datadata e hora (ISO 8601)A data e hora (UTC).
[].siglaDocumentotextoA sigla do tipo («FT», «FR», «NC»…).
[].numerotextoO número legível, atribuído pelo servidor («FR LC2026/25»).
[].clienteNometexto ou nuloO nome do cliente tal como estava na emissão.
[].quantidadenúmeroA quantidade.
[].precoUnitarionúmeroO preço de uma unidade, sem imposto.
[].totalnúmeroO total.

Pedido

curl
curl 'https://<endereço-da-API>/api/relatorios/produtos/<produtoId>/ultimas-vendas' \
  -H 'X-Api-Key: <a-sua-chave>'
GET/api/relatorios/resumo-facturacao#

A facturação de hoje, da semana, do mês e do ano (descontadas as notas de crédito).

  • Permissão RelatoriosDetalhados.Ler

Com lojaId limita a um estabelecimento. É a consulta mais leve da área: boa para um painel.

Parâmetros

NomeOndeTipoObrigatório
lojaIdna pesquisaidentificador (UUID)

Resposta (200 · JSON)

CampoTipoSignificado
hojenúmeroA facturação de hoje.
estaSemananúmeroA facturação da semana.
esteMesnúmeroA facturação do mês.
esteAnonúmeroA facturação do ano.

Exemplo

Facturação de hoje, da semana, do mês e do ano

Pedido
curl 'https://<endereço-da-API>/api/relatorios/resumo-facturacao?lojaId=01a12201-f4d4-7c07-86b7-e5b24035993e' \
  -H 'X-Api-Key: assw_v1_<chave>'
Pedido
const resposta = await fetch('https://<endereço-da-API>/api/relatorios/resumo-facturacao?lojaId=01a12201-f4d4-7c07-86b7-e5b24035993e', {
  method: 'GET',
  headers: {
    "X-Api-Key": "assw_v1_<chave>"
  },
})
const dados = await resposta.json()
Pedido
import requests

resposta = requests.get(
    'https://<endereço-da-API>/api/relatorios/resumo-facturacao?lojaId=01a12201-f4d4-7c07-86b7-e5b24035993e',
    headers={
        'X-Api-Key': 'assw_v1_<chave>'
    },
)
dados = resposta.json()
Pedido
using var cliente = new HttpClient { BaseAddress = new Uri("https://<endereço-da-API>") };
using var pedido = new HttpRequestMessage(HttpMethod.Get, "/api/relatorios/resumo-facturacao?lojaId=01a12201-f4d4-7c07-86b7-e5b24035993e");
pedido.Headers.Add("X-Api-Key", "assw_v1_<chave>");
using var resposta = await cliente.SendAsync(pedido);
var texto = await resposta.Content.ReadAsStringAsync();

200 OK Resposta

Resposta
content-type: application/json; charset=utf-8
x-mucanda-api-version: 1

{
  "hoje": 69540,
  "estaSemana": 69540,
  "esteMes": 2074574.05,
  "esteAno": 2074574.05
}
GET/api/relatorios/vendas-mensais#

As vendas de cada mês de um ano, por artigo.

  • Permissão RelatoriosDetalhados.Ler

Parâmetros

NomeOndeTipoObrigatório
anona pesquisanúmero inteirosim
produtoIdna pesquisaidentificador (UUID)
lojaIdna pesquisaidentificador (UUID)

Resposta (200 · JSON)

CampoTipoSignificado
[].mesnúmero inteiro
[].produtoIdidentificador (UUID)O artigo.
[].produtotexto
[].quantidadenúmeroA quantidade.
[].valornúmeroO valor.

Pedido

curl
curl 'https://<endereço-da-API>/api/relatorios/vendas-mensais' \
  -H 'X-Api-Key: <a-sua-chave>'