Referência

Financeiro

Quem deve à empresa e a quem a empresa deve: contas a receber, contas a pagar, despesas e pagamentos.

Quem deve à empresa e a quem a empresa deve: contas a receber, contas a pagar, despesas e pagamentos.

OperaçãoO que faz
GET /api/financeiro/contas-a-receberAs facturas a crédito por receber, com o vencimento, o que já foi recebido e o escalão de atraso.
GET /api/financeiro/contas-a-receber/resumoO resumo do que há por receber: total em aberto, vencido e a vencer, por escalão.
GET /api/financeiro/contas-a-pagarAs contas a pagar: compras a fornecedores e despesas.
GET /api/financeiro/contas-a-pagar/resumoO resumo do que há por pagar: total em aberto, vencido e a vencer em 7 dias.
GET /api/financeiro/contas-a-pagar/{id}Uma conta a pagar com todos os pagamentos e estornos.
POST /api/financeiro/contas-a-pagar/despesasLança uma despesa (renda, electricidade, serviços): cria uma conta a pagar, paga ou por pagar.
POST /api/financeiro/contas-a-pagar/{id}/pagamentosRegista um pagamento, parcial ou total, de uma conta a pagar.
GET /api/financeiro/categoriasAs categorias financeiras (de despesa e de receita), para classificar uma despesa.
GET /api/financeiro/centros-custoOs centros de custo da empresa, para imputar as despesas.
POST /api/financeiro/contas-a-pagar/{id}/notas-creditoRegista uma nota de crédito do fornecedor sobre uma conta a pagar: abate o que falta pagar.
GET /api/financeiro/contas-a-pagar/despesas/resumo-mesO resumo das despesas do mês corrente: total lançado, já pago e por pagar.
POST /api/financeiro/contas-a-pagar/{id}/anularAnula uma despesa que ainda não tem pagamentos.
POST /api/financeiro/contas-a-pagar/{id}/pagamentos/{pagamentoId}/estornarEstorna um pagamento a um fornecedor: a dívida reabre.
GET /api/financeiro/despesas-recorrentesAs despesas recorrentes (renda, seguros, rendas de equipamento…).
GET /api/financeiro/despesas-recorrentes/resumoO resumo das despesas recorrentes: quantas, quanto por mês e quantas estão pendentes de lançar.
GET /api/financeiro/despesas-recorrentes/{id}A ficha de uma despesa recorrente, com as despesas que já gerou.
POST /api/financeiro/despesas-recorrentesCria uma despesa recorrente.
PUT /api/financeiro/despesas-recorrentes/{id}Altera uma despesa recorrente; vale para os ciclos seguintes.
POST /api/financeiro/despesas-recorrentes/{id}/pausarPausa uma despesa recorrente: deixa de lançar até ser retomada.
POST /api/financeiro/despesas-recorrentes/{id}/retomarRetoma uma despesa recorrente pausada.
POST /api/financeiro/despesas-recorrentes/{id}/cancelarCancela uma despesa recorrente: não volta a lançar. As despesas já lançadas mantêm-se.
POST /api/financeiro/despesas-recorrentes/lancar-pendentesLança agora todas as despesas recorrentes que estão por lançar.
GET /api/financeiro/mapa-fornecedoresO Mapa de Fornecedores de um mês, para a declaração à AGT: a pré-visualização.
GET /api/financeiro/mapa-fornecedores/excelO Mapa de Fornecedores de um mês no modelo Excel da AGT.
POST /api/financeiro/categoriasCria uma categoria financeira (de receita ou de despesa).
PUT /api/financeiro/categorias/{id}Renomeia uma categoria financeira.
PUT /api/financeiro/categorias/{id}/actividadeDefine a actividade do fluxo de caixa a que uma categoria pertence.
PUT /api/financeiro/categorias/{id}/valores-fiscaisDefine a natureza fiscal da compra por omissão de uma categoria de despesa.
PUT /api/financeiro/categorias/{id}/activaActiva ou desactiva uma categoria financeira.
POST /api/financeiro/centros-custoCria um centro de custo.
PUT /api/financeiro/centros-custo/{id}Renomeia um centro de custo.
PUT /api/financeiro/centros-custo/{id}/activoActiva ou desactiva um centro de custo.
GET /api/financeiro/creditos-fornecedorOs créditos a favor da empresa junto dos fornecedores (o que sobra de uma nota de crédito sobre uma factura já paga).
GET /api/financeiro/creditos-fornecedor/{id}Um crédito de fornecedor, com as utilizações que já teve.
POST /api/financeiro/creditos-fornecedor/{id}/compensarUsa um crédito para abater outra conta a pagar do mesmo fornecedor.
POST /api/financeiro/creditos-fornecedor/{id}/reembolsarRecebe um crédito em dinheiro: o fornecedor devolve o valor à empresa.
POST /api/financeiro/creditos-fornecedor/utilizacoes/{utilizacaoId}/desfazerDesfaz uma utilização de um crédito (uma compensação ou um reembolso), com o motivo.
GET/api/financeiro/contas-a-receber#

As facturas a crédito por receber, com o vencimento, o que já foi recebido e o escalão de atraso.

  • Permissão DocumentosEmitidos.Ler

situacao é EmAberto (por omissão), Vencidas, Pagas ou Todas. O escalão mede os dias desde o vencimento: «A vencer», «0-30», «31-60», «61+».

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

Parâmetros

NomeOndeTipoObrigatório
situacaona pesquisauma de: «EmAberto», «Vencidas», «Pagas», «Todas»
clienteIdna pesquisaidentificador (UUID)
cursorna pesquisatexto
tamanhona pesquisanúmero inteiro

Resposta (200 · JSON)

CampoTipoSignificado
itenslista de objectosOs registos desta página.
itens[].ididentificador (UUID)Identificador único (UUID).
itens[].numerotextoO número legível, atribuído pelo servidor («FR LC2026/25»).
itens[].siglatexto
itens[].clienteIdidentificador (UUID)O cliente do documento.
itens[].clienteNometextoO nome do cliente tal como estava na emissão.
itens[].numeroContribuintetexto ou nuloO número de contribuinte (NIF).
itens[].lojaIdidentificador (UUID)O estabelecimento.
itens[].datadata e hora (ISO 8601)A data e hora (UTC).
itens[].vencimentodata (AAAA-MM-DD)O dia do vencimento.
itens[].totalnúmeroO total.
itens[].recebidonúmeroO que já foi recebido.
itens[].creditadonúmeroO que já foi creditado.
itens[].valorEmAbertonúmeroO que falta receber ou pagar.
itens[].diasEmAtrasonúmero inteiroOs dias desde o vencimento (0 se ainda não venceu).
itens[].escalaotextoO escalão de atraso: «A vencer», «0-30», «31-60» ou «61+».
itens[].situacaotextoA situação: EmAberto, Parcial, Paga, Anulada…
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/financeiro/contas-a-receber' \
  -H 'X-Api-Key: <a-sua-chave>'
GET/api/financeiro/contas-a-receber/resumo#

O resumo do que há por receber: total em aberto, vencido e a vencer, por escalão.

  • Permissão DocumentosEmitidos.Ler

Resposta (200 · JSON)

CampoTipoSignificado
emAbertonúmero inteiroO número de documentos em aberto.
valorEmAbertonúmeroO que falta receber ou pagar.
valorVencidonúmeroO total já vencido.
valorAVencerEm7Diasnúmero
valorVencidoAte30Diasnúmero
valorVencido31a60Diasnúmero
valorVencidoMais60Diasnúmero

Exemplo

Resumo das contas a receber

Pedido
curl 'https://<endereço-da-API>/api/financeiro/contas-a-receber/resumo' \
  -H 'X-Api-Key: assw_v1_<chave>'
Pedido
const resposta = await fetch('https://<endereço-da-API>/api/financeiro/contas-a-receber/resumo', {
  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/financeiro/contas-a-receber/resumo',
    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/financeiro/contas-a-receber/resumo");
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

{
  "emAberto": 9,
  "valorEmAberto": 977135.29,
  "valorVencido": 943505.29,
  "valorAVencerEm7Dias": 0,
  "valorVencidoAte30Dias": 943505.29,
  "valorVencido31a60Dias": 0,
  "valorVencidoMais60Dias": 0
}
GET/api/financeiro/contas-a-pagar#

As contas a pagar: compras a fornecedores e despesas.

  • Permissão Financeiro.ContasPagarLer

Filtre por situacao (EmAberto, Vencidas, Pagas, Todas), fornecedorId, origem (CompraEstoque ou Despesa) e categoriaId.

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

Parâmetros

NomeOndeTipoObrigatório
situacaona pesquisauma de: «EmAberto», «Vencidas», «Pagas», «Todas»
fornecedorIdna pesquisaidentificador (UUID)
cursorna pesquisatexto
tamanhona pesquisanúmero inteiro
origemna pesquisauma de: «CompraEstoque», «Despesa», «null»
categoriaIdna pesquisaidentificador (UUID)

Resposta (200 · JSON)

CampoTipoSignificado
itenslista de objectosOs registos desta página.
itens[].ididentificador (UUID)Identificador único (UUID).
itens[].numerotextoO número legível, atribuído pelo servidor («FR LC2026/25»).
itens[].origemtexto
itens[].entradaEstoqueIdidentificador (UUID) ou nulo
itens[].documentoFornecedortexto ou nulo
itens[].fornecedorIdidentificador (UUID) ou nulo
itens[].fornecedorNometexto ou nulo
itens[].numeroContribuintetexto ou nuloO número de contribuinte (NIF).
itens[].lojaIdidentificador (UUID)O estabelecimento.
itens[].descricaotextoA descrição.
itens[].dataDocumentodata e hora (ISO 8601)
itens[].vencimentodata e hora (ISO 8601)O dia do vencimento.
itens[].valornúmeroO valor.
itens[].valorPagonúmero
itens[].valorCreditadonúmeroO que já foi creditado por notas de crédito.
itens[].valorEmAbertonúmeroO que falta receber ou pagar.
itens[].diasEmAtrasonúmero inteiroOs dias desde o vencimento (0 se ainda não venceu).
itens[].escalaotextoO escalão de atraso: «A vencer», «0-30», «31-60» ou «61+».
itens[].situacaotextoA situação: EmAberto, Parcial, Paga, Anulada…
itens[].ultimoPagamentoEmUtcdata e hora (ISO 8601) ou nulo
itens[].categoriaFinanceiraIdidentificador (UUID) ou nulo
itens[].categoriaNometexto ou nulo
itens[].centroCustoIdidentificador (UUID) ou nulo
itens[].centroCustoNometexto ou nulo
itens[].tipoDocumentoFornecedortexto ou nulo
itens[].baseTributavelnúmero ou nulo
itens[].ivaSuportadonúmero ou nulo
itens[].percentagemIvaDedutivelnúmero ou nulo
itens[].naturezaCompratexto ou nulo
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/financeiro/contas-a-pagar' \
  -H 'X-Api-Key: <a-sua-chave>'
GET/api/financeiro/contas-a-pagar/resumo#

O resumo do que há por pagar: total em aberto, vencido e a vencer em 7 dias.

  • Permissão Financeiro.ContasPagarLer

Resposta (200 · JSON)

CampoTipoSignificado
emAbertonúmero inteiroO número de documentos em aberto.
valorEmAbertonúmeroO que falta receber ou pagar.
valorVencidonúmeroO total já vencido.
valorAVencerEm7Diasnúmero
valorVencidoAte30Diasnúmero
valorVencido31a60Diasnúmero
valorVencidoMais60Diasnúmero

Pedido

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

Uma conta a pagar com todos os pagamentos e estornos.

  • Permissão Financeiro.ContasPagarLer

Parâmetros

NomeOndeTipoObrigatório
idno caminhoidentificador (UUID)sim

Resposta (200 · JSON)

CampoTipoSignificado
contaobjecto
conta.ididentificador (UUID)Identificador único (UUID).
conta.numerotextoO número legível, atribuído pelo servidor («FR LC2026/25»).
conta.origemtexto
conta.entradaEstoqueIdidentificador (UUID) ou nulo
conta.documentoFornecedortexto ou nulo
conta.fornecedorIdidentificador (UUID) ou nulo
conta.fornecedorNometexto ou nulo
conta.numeroContribuintetexto ou nuloO número de contribuinte (NIF).
conta.lojaIdidentificador (UUID)O estabelecimento.
conta.descricaotextoA descrição.
conta.dataDocumentodata e hora (ISO 8601)
conta.vencimentodata e hora (ISO 8601)O dia do vencimento.
conta.valornúmeroO valor.
conta.valorPagonúmero
conta.valorCreditadonúmeroO que já foi creditado por notas de crédito.
conta.valorEmAbertonúmeroO que falta receber ou pagar.
conta.diasEmAtrasonúmero inteiroOs dias desde o vencimento (0 se ainda não venceu).
conta.escalaotextoO escalão de atraso: «A vencer», «0-30», «31-60» ou «61+».
conta.situacaotextoA situação: EmAberto, Parcial, Paga, Anulada…
conta.ultimoPagamentoEmUtcdata e hora (ISO 8601) ou nulo
conta.categoriaFinanceiraIdidentificador (UUID) ou nulo
conta.categoriaNometexto ou nulo
conta.centroCustoIdidentificador (UUID) ou nulo
conta.centroCustoNometexto ou nulo
conta.tipoDocumentoFornecedortexto ou nulo
conta.baseTributavelnúmero ou nulo
conta.ivaSuportadonúmero ou nulo
conta.percentagemIvaDedutivelnúmero ou nulo
conta.naturezaCompratexto ou nulo
pagamentoslista de objectos
pagamentos[].ididentificador (UUID)Identificador único (UUID).
pagamentos[].tipotexto
pagamentos[].metodoPagamentoIdidentificador (UUID)O método de pagamento.
pagamentos[].metodoPagamentoDescricaotexto
pagamentos[].valornúmeroO valor.
pagamentos[].jurosnúmero
pagamentos[].descontonúmeroO desconto habitual do cliente, em percentagem.
pagamentos[].valorEfectivonúmero
pagamentos[].datadata e hora (ISO 8601)A data e hora (UTC).
pagamentos[].numeroOperacaoBancariatexto ou nuloO número da operação bancária (opcional).
pagamentos[].dataOperacaoBancariadata e hora (ISO 8601) ou nuloA data da operação bancária (opcional).
pagamentos[].motivotexto ou nulo
pagamentos[].estornoDoPagamentoIdidentificador (UUID) ou nulo
pagamentos[].estornadoverdadeiro/falso
pagamentos[].registadoEmUtcdata e hora (ISO 8601)
notasCreditolista de objectos
notasCredito[].ididentificador (UUID)Identificador único (UUID).
notasCredito[].numerotextoO número legível, atribuído pelo servidor («FR LC2026/25»).
notasCredito[].datadata e hora (ISO 8601)A data e hora (UTC).
notasCredito[].baseTributavelnúmero
notasCredito[].ivaSuportadonúmero
notasCredito[].valornúmeroO valor.
notasCredito[].motivotexto
notasCredito[].criadaEmUtcdata e hora (ISO 8601)
notasCredito[].valorEmCreditonúmero

Erros específicos

NAO_ENCONTRADO — além dos gerais.

Exemplo

A conta a pagar criada pela despesa

Pedido
curl 'https://<endereço-da-API>/api/financeiro/contas-a-pagar/01a12f69-9cba-7f71-b74d-9d28904a0651' \
  -H 'X-Api-Key: assw_v1_<chave>'
Pedido
const resposta = await fetch('https://<endereço-da-API>/api/financeiro/contas-a-pagar/01a12f69-9cba-7f71-b74d-9d28904a0651', {
  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/financeiro/contas-a-pagar/01a12f69-9cba-7f71-b74d-9d28904a0651',
    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/financeiro/contas-a-pagar/01a12f69-9cba-7f71-b74d-9d28904a0651");
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

{
  "conta": {
    "id": "01a12f69-9cba-7f71-b74d-9d28904a0651",
    "numero": "CP002526",
    "origem": "Despesa",
    "entradaEstoqueId": null,
    "documentoFornecedor": null,
    "fornecedorId": null,
    "fornecedorNome": null,
    "numeroContribuinte": null,
    "lojaId": "01a12201-f4d4-7c07-86b7-e5b24035993e",
    "descricao": "Renda do armazém de Outubro",
    "dataDocumento": "2026-10-11T22:00:00Z",
    "vencimento": "2026-10-21T22:00:00Z",
    "valor": 250000,
    "valorPago": 0,
    "valorCreditado": 0,
    "valorEmAberto": 250000,
    "diasEmAtraso": -9,
    "escalao": "A vencer",
    "situacao": "EmAberto",
    "ultimoPagamentoEmUtc": null,
    "categoriaFinanceiraId": "01a12201-f4d4-7295-b80c-b7026c5ddf68",
    "categoriaNome": "Acertos de contas de cessação",
    "centroCustoId": null,
    "centroCustoNome": null,
    "tipoDocumentoFornecedor": null,
    "baseTributavel": null,
    "ivaSuportado": null,
    "percentagemIvaDedutivel": null,
    "naturezaCompra": null
  },
  "pagamentos": [],
  "notasCredito": []
}
POST/api/financeiro/contas-a-pagar/despesas#

Lança uma despesa (renda, electricidade, serviços): cria uma conta a pagar, paga ou por pagar.

  • Permissão Financeiro.ContasPagarCriar
  • Idempotência aceita Idempotency-Key

categoriaFinanceiraId vem de GET /api/financeiro/categorias; centroCustoId (opcional) de GET /api/financeiro/centros-custo.

Para a lançar já paga, envie valorPago e metodoPagamentoId (e dataPagamento, se foi paga noutro dia).

Se o documento é de um fornecedor, fornecedorId, documentoFornecedor e os valores fiscais alimentam o mapa de fornecedores e o SAF-T de compras.

Corpo do pedido (JSON · CriarDespesaCommand)

CampoTipoObrigatórioSignificado
categoriaFinanceiraIdidentificador (UUID)sim
descricaotextosimA descrição.
valornúmerosimO valor.
dataDocumentodata e hora (ISO 8601)sim
vencimentodata e hora (ISO 8601)simO dia do vencimento.
lojaIdidentificador (UUID) ou nuloO estabelecimento.
fornecedorIdidentificador (UUID) ou nulo
centroCustoIdidentificador (UUID) ou nulo
documentoFornecedortexto ou nulo
valorPagonúmero
metodoPagamentoIdidentificador (UUID) ou nuloO método de pagamento.
numeroOperacaoBancariatexto ou nuloO número da operação bancária (opcional).
dataOperacaoBancariadata e hora (ISO 8601) ou nuloA data da operação bancária (opcional).
tipoDocumentoFornecedoruma de: «FT», «FR», «GF», «FG», «AC», «AR», «TV», «TS», «RE», «NL», «TE», «ND», «null» ou nulo
baseTributavelnúmero ou nulo
ivaSuportadonúmero ou nulo
percentagemIvaDedutivelnúmero ou nulo
naturezaComprauma de: «MFI», «INV», «OBC», «SERV», «IMPT», «SCE», «null» ou nulo
dataPagamentodata e hora (ISO 8601) ou nulo

Resposta

Devolve 201 com { "id": "…" } da conta a pagar.

Erros específicos

ERRO_DE_VALIDACAO · METODO_PAGAMENTO_INACTIVO · PERIODO_FECHADO — além dos gerais.

Exemplo

Lançar uma despesa por pagar

Pedido
curl -X POST 'https://<endereço-da-API>/api/financeiro/contas-a-pagar/despesas' \
  -H 'Idempotency-Key: f10b2544-8d4d-42f5-8fa5-6fa1c187bb1d' \
  -H 'X-Api-Key: assw_v1_<chave>' \
  -H 'Content-Type: application/json' \
  -d '{
  "categoriaFinanceiraId": "01a12201-f4d4-7295-b80c-b7026c5ddf68",
  "descricao": "Renda do armazém de Outubro",
  "valor": 250000,
  "dataDocumento": "2026-10-12",
  "vencimento": "2026-10-22",
  "lojaId": "01a12201-f4d4-7c07-86b7-e5b24035993e"
}'
Pedido
const resposta = await fetch('https://<endereço-da-API>/api/financeiro/contas-a-pagar/despesas', {
  method: 'POST',
  headers: {
    "Idempotency-Key": "f10b2544-8d4d-42f5-8fa5-6fa1c187bb1d",
    "X-Api-Key": "assw_v1_<chave>",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    "categoriaFinanceiraId": "01a12201-f4d4-7295-b80c-b7026c5ddf68",
    "descricao": "Renda do armazém de Outubro",
    "valor": 250000,
    "dataDocumento": "2026-10-12",
    "vencimento": "2026-10-22",
    "lojaId": "01a12201-f4d4-7c07-86b7-e5b24035993e"
  }),
})
const dados = await resposta.json()
Pedido
import requests

resposta = requests.post(
    'https://<endereço-da-API>/api/financeiro/contas-a-pagar/despesas',
    headers={
        'Idempotency-Key': 'f10b2544-8d4d-42f5-8fa5-6fa1c187bb1d',
        'X-Api-Key': 'assw_v1_<chave>',
        'Content-Type': 'application/json'
    },
    json={
        'categoriaFinanceiraId': '01a12201-f4d4-7295-b80c-b7026c5ddf68',
        'descricao': 'Renda do armazém de Outubro',
        'valor': 250000,
        'dataDocumento': '2026-10-12',
        'vencimento': '2026-10-22',
        'lojaId': '01a12201-f4d4-7c07-86b7-e5b24035993e'
    },
)
dados = resposta.json()
Pedido
using var cliente = new HttpClient { BaseAddress = new Uri("https://<endereço-da-API>") };
using var pedido = new HttpRequestMessage(HttpMethod.Post, "/api/financeiro/contas-a-pagar/despesas");
pedido.Headers.Add("Idempotency-Key", "f10b2544-8d4d-42f5-8fa5-6fa1c187bb1d");
pedido.Headers.Add("X-Api-Key", "assw_v1_<chave>");
pedido.Content = new StringContent("""
{
  "categoriaFinanceiraId": "01a12201-f4d4-7295-b80c-b7026c5ddf68",
  "descricao": "Renda do armazém de Outubro",
  "valor": 250000,
  "dataDocumento": "2026-10-12",
  "vencimento": "2026-10-22",
  "lojaId": "01a12201-f4d4-7c07-86b7-e5b24035993e"
}
""", Encoding.UTF8, "application/json");
using var resposta = await cliente.SendAsync(pedido);
var texto = await resposta.Content.ReadAsStringAsync();

201 Created Resposta

Resposta
content-type: application/json; charset=utf-8
x-mucanda-api-version: 1
location: /api/financeiro/contas-a-pagar/01a12f69-9cba-7f71-b74d-9d28904a0651

{
  "id": "01a12f69-9cba-7f71-b74d-9d28904a0651"
}
POST/api/financeiro/contas-a-pagar/{id}/pagamentos#

Regista um pagamento, parcial ou total, de uma conta a pagar.

  • Permissão Financeiro.ContasPagarPagar
  • Idempotência aceita Idempotency-Key

O valor abate à dívida e nunca pode exceder o que falta. juros e desconto ajustam o valor efectivamente pago.

dataPagamento é o dia em que o dinheiro saiu (por omissão, agora); não pode ser futura.

Aceita Idempotency-Key: dois pagamentos iguais não se somam.

Parâmetros

NomeOndeTipoObrigatório
idno caminhoidentificador (UUID)sim

Corpo do pedido (JSON · RegistarPagamentoRequest)

CampoTipoObrigatórioSignificado
metodoPagamentoIdidentificador (UUID)simO método de pagamento.
valornúmerosimO valor.
jurosnúmero
descontonúmeroO desconto habitual do cliente, em percentagem.
numeroOperacaoBancariatexto ou nuloO número da operação bancária (opcional).
dataOperacaoBancariadata e hora (ISO 8601) ou nuloA data da operação bancária (opcional).
dataPagamentodata e hora (ISO 8601) ou nulo

Resposta

Devolve 201 com { "id": "…" } do pagamento.

Erros específicos

METODO_PAGAMENTO_INACTIVO · PERIODO_FECHADO — além dos gerais.

Exemplo

Registar um pagamento (parcial ou total) da despesa

Pedido
curl -X POST 'https://<endereço-da-API>/api/financeiro/contas-a-pagar/01a12f69-9cba-7f71-b74d-9d28904a0651/pagamentos' \
  -H 'Idempotency-Key: 74020947-01c7-4761-b6fb-44814ba472bc' \
  -H 'X-Api-Key: assw_v1_<chave>' \
  -H 'Content-Type: application/json' \
  -d '{
  "metodoPagamentoId": "9dde532b-0092-4a68-b2dc-18649f0c97c4",
  "valor": 100000,
  "juros": 0,
  "desconto": 0
}'
Pedido
const resposta = await fetch('https://<endereço-da-API>/api/financeiro/contas-a-pagar/01a12f69-9cba-7f71-b74d-9d28904a0651/pagamentos', {
  method: 'POST',
  headers: {
    "Idempotency-Key": "74020947-01c7-4761-b6fb-44814ba472bc",
    "X-Api-Key": "assw_v1_<chave>",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    "metodoPagamentoId": "9dde532b-0092-4a68-b2dc-18649f0c97c4",
    "valor": 100000,
    "juros": 0,
    "desconto": 0
  }),
})
const dados = await resposta.json()
Pedido
import requests

resposta = requests.post(
    'https://<endereço-da-API>/api/financeiro/contas-a-pagar/01a12f69-9cba-7f71-b74d-9d28904a0651/pagamentos',
    headers={
        'Idempotency-Key': '74020947-01c7-4761-b6fb-44814ba472bc',
        'X-Api-Key': 'assw_v1_<chave>',
        'Content-Type': 'application/json'
    },
    json={
        'metodoPagamentoId': '9dde532b-0092-4a68-b2dc-18649f0c97c4',
        'valor': 100000,
        'juros': 0,
        'desconto': 0
    },
)
dados = resposta.json()
Pedido
using var cliente = new HttpClient { BaseAddress = new Uri("https://<endereço-da-API>") };
using var pedido = new HttpRequestMessage(HttpMethod.Post, "/api/financeiro/contas-a-pagar/01a12f69-9cba-7f71-b74d-9d28904a0651/pagamentos");
pedido.Headers.Add("Idempotency-Key", "74020947-01c7-4761-b6fb-44814ba472bc");
pedido.Headers.Add("X-Api-Key", "assw_v1_<chave>");
pedido.Content = new StringContent("""
{
  "metodoPagamentoId": "9dde532b-0092-4a68-b2dc-18649f0c97c4",
  "valor": 100000,
  "juros": 0,
  "desconto": 0
}
""", Encoding.UTF8, "application/json");
using var resposta = await cliente.SendAsync(pedido);
var texto = await resposta.Content.ReadAsStringAsync();

201 Created Resposta

Resposta
content-type: application/json; charset=utf-8
x-mucanda-api-version: 1
location: /api/financeiro/contas-a-pagar/01a12f69-9cba-7f71-b74d-9d28904a0651

{
  "id": "01a12f69-9d06-7c6c-b060-777703ce8592"
}
GET/api/financeiro/categorias#

As categorias financeiras (de despesa e de receita), para classificar uma despesa.

  • Permissão Financeiro.ContasPagarLer

Com tipo=Despesa só vêm as de despesa.

Parâmetros

NomeOndeTipoObrigatório
tipona pesquisauma de: «Receita», «Despesa», «null»
incluirInactivasna pesquisaverdadeiro/falso

Resposta (200 · JSON)

CampoTipoSignificado
[].ididentificador (UUID)Identificador único (UUID).
[].tipotexto
[].nometextoO nome.
[].activaverdadeiro/falso
[].deSistemaverdadeiro/falso
[].actividadetexto
[].naturezaCompraPorOmissaotexto ou nulo

Exemplo

As categorias financeiras (para classificar uma despesa)

Pedido
curl 'https://<endereço-da-API>/api/financeiro/categorias?tipo=Despesa' \
  -H 'X-Api-Key: assw_v1_<chave>'
Pedido
const resposta = await fetch('https://<endereço-da-API>/api/financeiro/categorias?tipo=Despesa', {
  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/financeiro/categorias?tipo=Despesa',
    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/financeiro/categorias?tipo=Despesa");
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

[
  {
    "id": "01a12201-f4d4-7295-b80c-b7026c5ddf68",
    "tipo": "Despesa",
    "nome": "Acertos de contas de cessação",
    "activa": true,
    "deSistema": true,
    "actividade": "Operacional",
    "naturezaCompraPorOmissao": null
  },
  {
    "id": "01a12201-f4d4-766b-85fe-5a7fed7ddf11",
    "tipo": "Despesa",
    "nome": "Alimentação",
    "activa": true,
    "deSistema": false,
    "actividade": "Operacional",
    "naturezaCompraPorOmissao": null
  },
  {
    "id": "01a12201-f4d4-7da5-9bdf-6bed9af13af6",
    "tipo": "Despesa",
    "nome": "Amortização de empréstimos",
    "activa": true,
    "deSistema": false,
    "actividade": "Financiamento",
    "naturezaCompraPorOmissao": null
  },
  {
    "id": "01a12201-f4d4-7420-a0ca-c2c9bed0ef8c",
    "tipo": "Despesa",
    "nome": "Compra de equipamento",
    "activa": true,
    "deSistema": false,
    "actividade": "Investimento",
    "naturezaCompraPorOmissao": null
  },
  {
    "id": "01a12201-f4d4-7ee6-8b97-4deb8a6fa820",
    "tipo": "Despesa",
    "nome": "Compra de mercadorias",
    "activa": true,
    "deSistema": true,
    "actividade": "Operacional",
    "naturezaCompraPorOmissao": null
  },
  {
    "id": "01a12201-f4d4-7844-9dd4-70708d97a611",
    "tipo": "Despesa",
    "nome": "Consumíveis de escritório",
    "activa": true,
    "deSistema": false,
    "actividade": "Operacional",
    "naturezaCompraPorOmissao": null
  },
  {
    "id": "01a12201-f4d4-7d9a-8e4b-d6b62cf1fb60",
    "tipo": "Despesa",
    "nome": "Energia",
    "activa": true,
  …
GET/api/financeiro/centros-custo#

Os centros de custo da empresa, para imputar as despesas.

  • Permissão Financeiro.ContasPagarLer

Parâmetros

NomeOndeTipoObrigatório
incluirInactivosna pesquisaverdadeiro/falso

Resposta (200 · JSON)

CampoTipoSignificado
[].ididentificador (UUID)Identificador único (UUID).
[].nometextoO nome.
[].activoverdadeiro/falsoSe está activo.

Pedido

curl
curl 'https://<endereço-da-API>/api/financeiro/centros-custo' \
  -H 'X-Api-Key: <a-sua-chave>'
POST/api/financeiro/contas-a-pagar/{id}/notas-credito#

Regista uma nota de crédito do fornecedor sobre uma conta a pagar: abate o que falta pagar.

  • Permissão Financeiro.ContasPagarNotaCredito
  • Idempotência aceita Idempotency-Key

Envie Idempotency-Key: repetir o pedido não o executa duas vezes. Ver Idempotência.

Leva o numero do documento do fornecedor, a data, a baseTributavel, o ivaSuportado, o valor e o motivo. Se a conta já estava paga, o que sobra fica como crédito a favor da empresa (ver créditos de fornecedores).

Parâmetros

NomeOndeTipoObrigatório
idno caminhoidentificador (UUID)sim

Corpo do pedido (JSON · RegistarNotaCreditoRequest)

CampoTipoObrigatórioSignificado
numerotextosimO número legível, atribuído pelo servidor («FR LC2026/25»).
datadata e hora (ISO 8601)simA data e hora (UTC).
baseTributavelnúmerosim
ivaSuportadonúmerosim
valornúmerosimO valor.
motivotextosim

Pedido

curl
curl -X POST 'https://<endereço-da-API>/api/financeiro/contas-a-pagar/<id>/notas-credito' \
  -H 'X-Api-Key: <a-sua-chave>' \
  -H 'Idempotency-Key: <um-GUID-novo>' \
  -H 'Content-Type: application/json' \
  -d '{
  "numero": "texto",
  "data": "2026-10-12T09:00:00Z",
  "baseTributavel": 0,
  "ivaSuportado": 0,
  "valor": 0,
  "motivo": "texto"
}'
GET/api/financeiro/contas-a-pagar/despesas/resumo-mes#

O resumo das despesas do mês corrente: total lançado, já pago e por pagar.

  • Permissão Financeiro.ContasPagarLer

Resposta (200 · JSON)

CampoTipoSignificado
quantidadenúmero inteiroA quantidade.
totalnúmeroO total.
pagonúmero
porPagarnúmero

Pedido

curl
curl 'https://<endereço-da-API>/api/financeiro/contas-a-pagar/despesas/resumo-mes' \
  -H 'X-Api-Key: <a-sua-chave>'
POST/api/financeiro/contas-a-pagar/{id}/anular#

Anula uma despesa que ainda não tem pagamentos.

  • Permissão Financeiro.ContasPagarCriar
  • Idempotência aceita Idempotency-Key

Exige o motivo. Uma despesa já paga corrige-se estornando primeiro os pagamentos.

Parâmetros

NomeOndeTipoObrigatório
idno caminhoidentificador (UUID)sim

Corpo do pedido (JSON · AnularDespesaRequest)

CampoTipoObrigatório
motivotextosim

Pedido

curl
curl -X POST 'https://<endereço-da-API>/api/financeiro/contas-a-pagar/<id>/anular' \
  -H 'X-Api-Key: <a-sua-chave>' \
  -H 'Idempotency-Key: <um-GUID-novo>' \
  -H 'Content-Type: application/json' \
  -d '{
  "motivo": "texto"
}'
POST/api/financeiro/contas-a-pagar/{id}/pagamentos/{pagamentoId}/estornar#

Estorna um pagamento a um fornecedor: a dívida reabre.

  • Permissão Financeiro.ContasPagarEstornar
  • Idempotência aceita Idempotency-Key

Um pagamento só se estorna uma vez.

Parâmetros

NomeOndeTipoObrigatório
idno caminhoidentificador (UUID)sim
pagamentoIdno caminhoidentificador (UUID)sim

Corpo do pedido (JSON · EstornarPagamentoRequest)

CampoTipoObrigatório
motivotextosim

Pedido

curl
curl -X POST 'https://<endereço-da-API>/api/financeiro/contas-a-pagar/<id>/pagamentos/<pagamentoId>/estornar' \
  -H 'X-Api-Key: <a-sua-chave>' \
  -H 'Idempotency-Key: <um-GUID-novo>' \
  -H 'Content-Type: application/json' \
  -d '{
  "motivo": "texto"
}'
GET/api/financeiro/despesas-recorrentes#

As despesas recorrentes (renda, seguros, rendas de equipamento…).

  • Permissão Financeiro.ContasPagarLer

estado filtra por estado. O sistema lança a despesa de cada ciclo; nunca a paga sozinho.

Parâmetros

NomeOndeTipoObrigatório
estadona pesquisauma de: «Activo», «Pausado», «Concluido», «Cancelado», «null»

Resposta (200 · JSON)

CampoTipoSignificado
[].ididentificador (UUID)Identificador único (UUID).
[].numerotextoO número legível, atribuído pelo servidor («FR LC2026/25»).
[].lojaIdidentificador (UUID)O estabelecimento.
[].categoriaFinanceiraIdidentificador (UUID)
[].categoriaNometexto
[].descricaotextoA descrição.
[].valornúmeroO valor.
[].fornecedorIdidentificador (UUID) ou nulo
[].fornecedorNometexto ou nulo
[].centroCustoIdidentificador (UUID) ou nulo
[].centroCustoNometexto ou nulo
[].frequenciatexto
[].diaLancamentonúmero inteiro
[].prazoPagamentoDiasnúmero inteiro
[].dataIniciodata (AAAA-MM-DD)
[].dataFimdata (AAAA-MM-DD) ou nulo
[].proximaEmissaodata (AAAA-MM-DD)
[].estadotextoO estado actual.
[].pendenteverdadeiro/falso
[].ciclosEmAtrasonúmero inteiro
[].observacaotexto ou nuloO texto livre.
[].criadaEmUtcdata e hora (ISO 8601)

Pedido

curl
curl 'https://<endereço-da-API>/api/financeiro/despesas-recorrentes' \
  -H 'X-Api-Key: <a-sua-chave>'
GET/api/financeiro/despesas-recorrentes/resumo#

O resumo das despesas recorrentes: quantas, quanto por mês e quantas estão pendentes de lançar.

  • Permissão Financeiro.ContasPagarLer

Resposta (200 · JSON)

CampoTipo
activasnúmero inteiro
custoMensalEquivalentenúmero
pendentesnúmero inteiro

Pedido

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

A ficha de uma despesa recorrente, com as despesas que já gerou.

  • Permissão Financeiro.ContasPagarLer

Parâmetros

NomeOndeTipoObrigatório
idno caminhoidentificador (UUID)sim

Resposta (200 · JSON)

CampoTipoSignificado
despesaobjecto
despesa.ididentificador (UUID)Identificador único (UUID).
despesa.numerotextoO número legível, atribuído pelo servidor («FR LC2026/25»).
despesa.lojaIdidentificador (UUID)O estabelecimento.
despesa.categoriaFinanceiraIdidentificador (UUID)
despesa.categoriaNometexto
despesa.descricaotextoA descrição.
despesa.valornúmeroO valor.
despesa.fornecedorIdidentificador (UUID) ou nulo
despesa.fornecedorNometexto ou nulo
despesa.centroCustoIdidentificador (UUID) ou nulo
despesa.centroCustoNometexto ou nulo
despesa.frequenciatexto
despesa.diaLancamentonúmero inteiro
despesa.prazoPagamentoDiasnúmero inteiro
despesa.dataIniciodata (AAAA-MM-DD)
despesa.dataFimdata (AAAA-MM-DD) ou nulo
despesa.proximaEmissaodata (AAAA-MM-DD)
despesa.estadotextoO estado actual.
despesa.pendenteverdadeiro/falso
despesa.ciclosEmAtrasonúmero inteiro
despesa.observacaotexto ou nuloO texto livre.
despesa.criadaEmUtcdata e hora (ISO 8601)
historicolista de objectos
historico[].ididentificador (UUID)Identificador único (UUID).
historico[].cicloDatadata (AAAA-MM-DD)
historico[].executadaEmUtcdata e hora (ISO 8601)
historico[].estadotextoO estado actual.
historico[].contaAPagarIdidentificador (UUID) ou nulo
historico[].contaNumerotexto ou nulo
historico[].errotexto ou nulo

Pedido

curl
curl 'https://<endereço-da-API>/api/financeiro/despesas-recorrentes/<id>' \
  -H 'X-Api-Key: <a-sua-chave>'
POST/api/financeiro/despesas-recorrentes#

Cria uma despesa recorrente.

  • Permissão Financeiro.ContasPagarCriar
  • Idempotência aceita Idempotency-Key

Os campos (descrição, valor, categoria, prazo de pagamento, periodicidade…) estão no esquema do pedido. Devolve o id.

Corpo do pedido (JSON · CriarDespesaRecorrenteCommand)

CampoTipoObrigatórioSignificado
categoriaFinanceiraIdidentificador (UUID)sim
descricaotextosimA descrição.
valornúmerosimO valor.
frequenciauma de: «Mensal», «Trimestral», «Semestral», «Anual»sim
diaLancamentonúmero inteirosim
prazoPagamentoDiasnúmero inteirosim
dataIniciodata (AAAA-MM-DD)sim
dataFimdata (AAAA-MM-DD) ou nulo
fornecedorIdidentificador (UUID) ou nulo
centroCustoIdidentificador (UUID) ou nulo
lojaIdidentificador (UUID) ou nuloO estabelecimento.
observacaotexto ou nuloO texto livre.

Pedido

curl
curl -X POST 'https://<endereço-da-API>/api/financeiro/despesas-recorrentes' \
  -H 'X-Api-Key: <a-sua-chave>' \
  -H 'Idempotency-Key: <um-GUID-novo>' \
  -H 'Content-Type: application/json' \
  -d '{
  "categoriaFinanceiraId": "00000000-0000-0000-0000-000000000000",
  "descricao": "texto",
  "valor": 0,
  "frequencia": "Mensal",
  "diaLancamento": 1,
  "prazoPagamentoDias": 1,
  "dataInicio": "2026-10-12"
}'
PUT/api/financeiro/despesas-recorrentes/{id}#

Altera uma despesa recorrente; vale para os ciclos seguintes.

  • Permissão Financeiro.ContasPagarCriar

Parâmetros

NomeOndeTipoObrigatório
idno caminhoidentificador (UUID)sim

Corpo do pedido (JSON · EditarDespesaRecorrenteRequest)

CampoTipoObrigatórioSignificado
descricaotextosimA descrição.
valornúmerosimO valor.
categoriaFinanceiraIdidentificador (UUID)sim
prazoPagamentoDiasnúmero inteirosim
fornecedorIdidentificador (UUID) ou nulo
centroCustoIdidentificador (UUID) ou nulo
observacaotexto ou nuloO texto livre.

Pedido

curl
curl -X PUT 'https://<endereço-da-API>/api/financeiro/despesas-recorrentes/<id>' \
  -H 'X-Api-Key: <a-sua-chave>' \
  -H 'Content-Type: application/json' \
  -d '{
  "descricao": "texto",
  "valor": 0,
  "categoriaFinanceiraId": "00000000-0000-0000-0000-000000000000",
  "prazoPagamentoDias": 1
}'
POST/api/financeiro/despesas-recorrentes/{id}/pausar#

Pausa uma despesa recorrente: deixa de lançar até ser retomada.

  • Permissão Financeiro.ContasPagarCriar

Parâmetros

NomeOndeTipoObrigatório
idno caminhoidentificador (UUID)sim

Pedido

curl
curl -X POST 'https://<endereço-da-API>/api/financeiro/despesas-recorrentes/<id>/pausar' \
  -H 'X-Api-Key: <a-sua-chave>'
POST/api/financeiro/despesas-recorrentes/{id}/retomar#

Retoma uma despesa recorrente pausada.

  • Permissão Financeiro.ContasPagarCriar

Parâmetros

NomeOndeTipoObrigatório
idno caminhoidentificador (UUID)sim

Pedido

curl
curl -X POST 'https://<endereço-da-API>/api/financeiro/despesas-recorrentes/<id>/retomar' \
  -H 'X-Api-Key: <a-sua-chave>'
POST/api/financeiro/despesas-recorrentes/{id}/cancelar#

Cancela uma despesa recorrente: não volta a lançar. As despesas já lançadas mantêm-se.

  • Permissão Financeiro.ContasPagarCriar

Parâmetros

NomeOndeTipoObrigatório
idno caminhoidentificador (UUID)sim

Pedido

curl
curl -X POST 'https://<endereço-da-API>/api/financeiro/despesas-recorrentes/<id>/cancelar' \
  -H 'X-Api-Key: <a-sua-chave>'
POST/api/financeiro/despesas-recorrentes/lancar-pendentes#

Lança agora todas as despesas recorrentes que estão por lançar.

  • Permissão Financeiro.ContasPagarCriar

Pode demorar (uma despesa por ciclo em atraso). Devolve lancadas, falhadas (com as falhas) e restantes.

Resposta (200 · JSON)

CampoTipoSignificado
lancadasnúmero inteiro
falhadasnúmero inteiro
falhaslista de objectos
falhas[].numerotextoO número legível, atribuído pelo servidor («FR LC2026/25»).
falhas[].errotexto
restantesnúmero inteiro

Pedido

curl
curl -X POST 'https://<endereço-da-API>/api/financeiro/despesas-recorrentes/lancar-pendentes' \
  -H 'X-Api-Key: <a-sua-chave>'
GET/api/financeiro/mapa-fornecedores#

O Mapa de Fornecedores de um mês, para a declaração à AGT: a pré-visualização.

  • Permissão Saft.Exportar

periodo obrigatório, como AAAA-MM. Precisa da permissão de exportação fiscal (a mesma do SAF-T).

Parâmetros

NomeOndeTipoObrigatório
periodona pesquisatextosim

Resposta (200 · JSON)

CampoTipoSignificado
nifContribuintetexto
periodotexto
linhaslista de objectos
linhas[].numeroOrdemnúmero inteiro
linhas[].nifEmAngolatexto
linhas[].niftexto
linhas[].nometextoO nome.
linhas[].tipoDocumentotexto
linhas[].datadata (AAAA-MM-DD)A data e hora (UTC).
linhas[].numeroDocumentotexto
linhas[].valorFacturanúmero
linhas[].valorTributavelnúmero
linhas[].ivaSuportadonúmero
totalValorFacturanúmero
totalValorTributavelnúmero
totalIvaSuportadonúmero
despesasSemDocumentonúmero inteiro
valorDespesasSemDocumentonúmero
perguntasPorConfirmarlista de texto
avisoslista de texto

Pedido

curl
curl 'https://<endereço-da-API>/api/financeiro/mapa-fornecedores' \
  -H 'X-Api-Key: <a-sua-chave>'
GET/api/financeiro/mapa-fornecedores/excel#

O Mapa de Fornecedores de um mês no modelo Excel da AGT.

  • Permissão Saft.Exportar

periodo obrigatório (AAAA-MM). A resposta é o ficheiro.

Parâmetros

NomeOndeTipoObrigatório
periodona pesquisatextosim

Resposta

Devolve 200 com o ficheiro Excel (.xlsx).

Pedido

curl
curl 'https://<endereço-da-API>/api/financeiro/mapa-fornecedores/excel' \
  -H 'X-Api-Key: <a-sua-chave>'
POST/api/financeiro/categorias#

Cria uma categoria financeira (de receita ou de despesa).

  • Permissão Financeiro.CategoriasEditar
  • Idempotência aceita Idempotency-Key

Devolve o id. As categorias de sistema (por exemplo, «Compra de mercadorias») não se criam nem se mudam.

Corpo do pedido (JSON · CriarCategoriaFinanceiraCommand)

CampoTipoObrigatórioSignificado
tipouma de: «Receita», «Despesa», «null»sim
nometextosimO nome.
actividadeuma de: «Operacional», «Investimento», «Financiamento»

Pedido

curl
curl -X POST 'https://<endereço-da-API>/api/financeiro/categorias' \
  -H 'X-Api-Key: <a-sua-chave>' \
  -H 'Idempotency-Key: <um-GUID-novo>' \
  -H 'Content-Type: application/json' \
  -d '{
  "tipo": "Receita",
  "nome": "texto"
}'
PUT/api/financeiro/categorias/{id}#

Renomeia uma categoria financeira.

  • Permissão Financeiro.CategoriasEditar

Parâmetros

NomeOndeTipoObrigatório
idno caminhoidentificador (UUID)sim

Corpo do pedido (JSON · NomeRequest)

CampoTipoObrigatórioSignificado
nometextosimO nome.

Pedido

curl
curl -X PUT 'https://<endereço-da-API>/api/financeiro/categorias/<id>' \
  -H 'X-Api-Key: <a-sua-chave>' \
  -H 'Content-Type: application/json' \
  -d '{
  "nome": "texto"
}'
PUT/api/financeiro/categorias/{id}/actividade#

Define a actividade do fluxo de caixa a que uma categoria pertence.

  • Permissão Financeiro.CategoriasEditar

actividade é uma de: Operacional (o dia a dia do negócio), Investimento (activos de longo prazo) ou Financiamento (capital e dívida).

Parâmetros

NomeOndeTipoObrigatório
idno caminhoidentificador (UUID)sim

Corpo do pedido (JSON · ActividadeRequest)

CampoTipoObrigatório
actividadeuma de: «Operacional», «Investimento», «Financiamento»sim

Pedido

curl
curl -X PUT 'https://<endereço-da-API>/api/financeiro/categorias/<id>/actividade' \
  -H 'X-Api-Key: <a-sua-chave>' \
  -H 'Content-Type: application/json' \
  -d '{
  "actividade": "Operacional"
}'
PUT/api/financeiro/categorias/{id}/valores-fiscais#

Define a natureza fiscal da compra por omissão de uma categoria de despesa.

  • Permissão Financeiro.CategoriasEditar

naturezaCompra é a natureza que as despesas desta categoria levam no Mapa de Fornecedores e no SAF-T de compras; nula = sem valor por omissão.

Parâmetros

NomeOndeTipoObrigatório
idno caminhoidentificador (UUID)sim

Corpo do pedido (JSON · ValoresFiscaisCategoriaRequest)

CampoTipoObrigatório
naturezaComprauma de: «MFI», «INV», «OBC», «SERV», «IMPT», «SCE», «null» ou nulo

Pedido

curl
curl -X PUT 'https://<endereço-da-API>/api/financeiro/categorias/<id>/valores-fiscais' \
  -H 'X-Api-Key: <a-sua-chave>' \
  -H 'Content-Type: application/json' \
  -d '{}'
PUT/api/financeiro/categorias/{id}/activa#

Activa ou desactiva uma categoria financeira.

  • Permissão Financeiro.CategoriasEditar

Parâmetros

NomeOndeTipoObrigatório
idno caminhoidentificador (UUID)sim

Corpo do pedido (JSON · ActivaRequest)

CampoTipoObrigatório
activaverdadeiro/falsosim

Pedido

curl
curl -X PUT 'https://<endereço-da-API>/api/financeiro/categorias/<id>/activa' \
  -H 'X-Api-Key: <a-sua-chave>' \
  -H 'Content-Type: application/json' \
  -d '{
  "activa": false
}'
POST/api/financeiro/centros-custo#

Cria um centro de custo.

  • Permissão Financeiro.CategoriasEditar
  • Idempotência aceita Idempotency-Key

Devolve o id.

Corpo do pedido (JSON · CriarCentroCustoCommand)

CampoTipoObrigatórioSignificado
nometextosimO nome.

Pedido

curl
curl -X POST 'https://<endereço-da-API>/api/financeiro/centros-custo' \
  -H 'X-Api-Key: <a-sua-chave>' \
  -H 'Idempotency-Key: <um-GUID-novo>' \
  -H 'Content-Type: application/json' \
  -d '{
  "nome": "texto"
}'
PUT/api/financeiro/centros-custo/{id}#

Renomeia um centro de custo.

  • Permissão Financeiro.CategoriasEditar

Parâmetros

NomeOndeTipoObrigatório
idno caminhoidentificador (UUID)sim

Corpo do pedido (JSON · NomeRequest)

CampoTipoObrigatórioSignificado
nometextosimO nome.

Pedido

curl
curl -X PUT 'https://<endereço-da-API>/api/financeiro/centros-custo/<id>' \
  -H 'X-Api-Key: <a-sua-chave>' \
  -H 'Content-Type: application/json' \
  -d '{
  "nome": "texto"
}'
PUT/api/financeiro/centros-custo/{id}/activo#

Activa ou desactiva um centro de custo.

  • Permissão Financeiro.CategoriasEditar

Parâmetros

NomeOndeTipoObrigatório
idno caminhoidentificador (UUID)sim

Corpo do pedido (JSON · ActivoRequest)

CampoTipoObrigatórioSignificado
activoverdadeiro/falsosimSe está activo.

Pedido

curl
curl -X PUT 'https://<endereço-da-API>/api/financeiro/centros-custo/<id>/activo' \
  -H 'X-Api-Key: <a-sua-chave>' \
  -H 'Content-Type: application/json' \
  -d '{
  "activo": false
}'
GET/api/financeiro/creditos-fornecedor#

Os créditos a favor da empresa junto dos fornecedores (o que sobra de uma nota de crédito sobre uma factura já paga).

  • Permissão Financeiro.ContasPagarLer

fornecedorId filtra por fornecedor; apenasDisponiveis (por omissão verdadeiro) esconde os já gastos.

Parâmetros

NomeOndeTipoObrigatório
fornecedorIdna pesquisaidentificador (UUID)
apenasDisponiveisna pesquisaverdadeiro/falso

Resposta (200 · JSON)

CampoTipoSignificado
[].ididentificador (UUID)Identificador único (UUID).
[].fornecedorIdidentificador (UUID)
[].fornecedorNometexto
[].lojaIdidentificador (UUID)O estabelecimento.
[].notaCreditoIdidentificador (UUID)
[].notaCreditoNumerotexto
[].notaCreditoDatadata e hora (ISO 8601)
[].contaAPagarIdidentificador (UUID)
[].contaAPagarNumerotexto
[].valornúmeroO valor.
[].valorUtilizadonúmero
[].valorDisponivelnúmero
[].criadoEmUtcdata e hora (ISO 8601)Quando o evento aconteceu (UTC).

Pedido

curl
curl 'https://<endereço-da-API>/api/financeiro/creditos-fornecedor' \
  -H 'X-Api-Key: <a-sua-chave>'
GET/api/financeiro/creditos-fornecedor/{id}#

Um crédito de fornecedor, com as utilizações que já teve.

  • Permissão Financeiro.ContasPagarLer

Parâmetros

NomeOndeTipoObrigatório
idno caminhoidentificador (UUID)sim

Resposta (200 · JSON)

CampoTipoSignificado
creditoobjecto
credito.ididentificador (UUID)Identificador único (UUID).
credito.fornecedorIdidentificador (UUID)
credito.fornecedorNometexto
credito.lojaIdidentificador (UUID)O estabelecimento.
credito.notaCreditoIdidentificador (UUID)
credito.notaCreditoNumerotexto
credito.notaCreditoDatadata e hora (ISO 8601)
credito.contaAPagarIdidentificador (UUID)
credito.contaAPagarNumerotexto
credito.valornúmeroO valor.
credito.valorUtilizadonúmero
credito.valorDisponivelnúmero
credito.criadoEmUtcdata e hora (ISO 8601)Quando o evento aconteceu (UTC).
utilizacoeslista de objectos
utilizacoes[].ididentificador (UUID)Identificador único (UUID).
utilizacoes[].tipotexto
utilizacoes[].valornúmeroO valor.
utilizacoes[].datadata e hora (ISO 8601)A data e hora (UTC).
utilizacoes[].contaAPagarIdidentificador (UUID) ou nulo
utilizacoes[].contaAPagarNumerotexto ou nulo
utilizacoes[].receitaAvulsaIdidentificador (UUID) ou nulo
utilizacoes[].estornoDaUtilizacaoIdidentificador (UUID) ou nulo
utilizacoes[].estornadaverdadeiro/falso
utilizacoes[].motivotexto ou nulo
utilizacoes[].registadaEmUtcdata e hora (ISO 8601)

Pedido

curl
curl 'https://<endereço-da-API>/api/financeiro/creditos-fornecedor/<id>' \
  -H 'X-Api-Key: <a-sua-chave>'
POST/api/financeiro/creditos-fornecedor/{id}/compensar#

Usa um crédito para abater outra conta a pagar do mesmo fornecedor.

  • Permissão Financeiro.ContasPagarNotaCredito
  • Idempotência aceita Idempotency-Key

Envie Idempotency-Key: repetir o pedido não o executa duas vezes. Ver Idempotência.

Parâmetros

NomeOndeTipoObrigatório
idno caminhoidentificador (UUID)sim

Corpo do pedido (JSON · CompensarCreditoRequest)

CampoTipoObrigatórioSignificado
contaAPagarIdidentificador (UUID)sim
valornúmerosimO valor.

Pedido

curl
curl -X POST 'https://<endereço-da-API>/api/financeiro/creditos-fornecedor/<id>/compensar' \
  -H 'X-Api-Key: <a-sua-chave>' \
  -H 'Idempotency-Key: <um-GUID-novo>' \
  -H 'Content-Type: application/json' \
  -d '{
  "contaAPagarId": "00000000-0000-0000-0000-000000000000",
  "valor": 0
}'
POST/api/financeiro/creditos-fornecedor/{id}/reembolsar#

Recebe um crédito em dinheiro: o fornecedor devolve o valor à empresa.

  • Permissão Financeiro.ContasPagarNotaCredito
  • Idempotência aceita Idempotency-Key

Envie Idempotency-Key: repetir o pedido não o executa duas vezes. Ver Idempotência.

Parâmetros

NomeOndeTipoObrigatório
idno caminhoidentificador (UUID)sim

Corpo do pedido (JSON · ReembolsarCreditoRequest)

CampoTipoObrigatórioSignificado
metodoPagamentoIdidentificador (UUID)simO método de pagamento.
valornúmerosimO valor.
datadata e hora (ISO 8601) ou nuloA data e hora (UTC).
referenciatexto ou nulo

Pedido

curl
curl -X POST 'https://<endereço-da-API>/api/financeiro/creditos-fornecedor/<id>/reembolsar' \
  -H 'X-Api-Key: <a-sua-chave>' \
  -H 'Idempotency-Key: <um-GUID-novo>' \
  -H 'Content-Type: application/json' \
  -d '{
  "metodoPagamentoId": "00000000-0000-0000-0000-000000000000",
  "valor": 0
}'
POST/api/financeiro/creditos-fornecedor/utilizacoes/{utilizacaoId}/desfazer#

Desfaz uma utilização de um crédito (uma compensação ou um reembolso), com o motivo.

  • Permissão Financeiro.ContasPagarNotaCredito
  • Idempotência aceita Idempotency-Key

Parâmetros

NomeOndeTipoObrigatório
utilizacaoIdno caminhoidentificador (UUID)sim

Corpo do pedido (JSON · DesfazerUtilizacaoRequest)

CampoTipoObrigatório
motivotextosim

Pedido

curl
curl -X POST 'https://<endereço-da-API>/api/financeiro/creditos-fornecedor/utilizacoes/<utilizacaoId>/desfazer' \
  -H 'X-Api-Key: <a-sua-chave>' \
  -H 'Idempotency-Key: <um-GUID-novo>' \
  -H 'Content-Type: application/json' \
  -d '{
  "motivo": "texto"
}'