Referência

Catálogos

Os valores de referência que os outros pedidos usam: tipos de documento, métodos de pagamento, impostos, unidades, categorias. Quase nunca mudam: guarde-os localmente e actualize-os de vez em quando.

Os valores de referência que os outros pedidos usam: tipos de documento, métodos de pagamento, impostos, unidades, categorias. Quase nunca mudam: guarde-os localmente e actualize-os de vez em quando.

OperaçãoO que faz
GET /api/catalogosTodos os catálogos fiscais numa só chamada: tipos de documento, métodos de pagamento, impostos, retenções, motivos de isenção, províncias e municípios.
GET /api/impostosAs taxas de imposto (IVA) que um artigo pode ter.
GET /api/moedasAs moedas registadas na empresa.
GET /api/metodos-pagamentoOs métodos de pagamento (numerário, Multicaixa, transferência…). O id é o que se envia nos pagamentos.
GET /api/documentos/tiposOs tipos de documento que a empresa pode emitir. O id de cada um é o tipoDocumentoId dos pedidos de emissão.
GET /api/documentos/seriesAs séries de numeração de cada tipo de documento, por estabelecimento.
GET /api/produtos/catalogos/{tipo}As listas de apoio do cadastro de artigos: categorias, unidades, marcas, modelos, fabricantes e tamanhos.
GET /api/condicoes-pagamentoAs condições de pagamento da empresa: o prazo para pagar uma factura a crédito.
POST /api/condicoes-pagamentoCria uma condição de pagamento.
PUT /api/condicoes-pagamento/{id}Altera uma condição de pagamento.
GET /api/taxas-retencaoAs taxas de retenção na fonte que um artigo ou um cliente pode ter.
GET /api/motivos-isencao-ivaOs motivos de isenção de IVA (os códigos legais) que um artigo isento tem de indicar.
GET /api/provinciasAs províncias de Angola.
GET /api/municipiosOs municípios de Angola.
GET/api/catalogos#

Todos os catálogos fiscais numa só chamada: tipos de documento, métodos de pagamento, impostos, retenções, motivos de isenção, províncias e municípios.

  • Permissão Catalogos.Ler

A resposta traz a versao do pacote e um cabeçalho ETag. Guarde ambos e, da vez seguinte, envie If-None-Match com esse valor: enquanto nada mudou, a resposta é 304 sem corpo.

É o pedido certo para começar uma sessão ou uma sincronização: um só pedido substitui vários.

Resposta (200 · JSON)

CampoTipoSignificado
versaonúmero inteiro
tiposDocumentolista de objectos
tiposDocumento[].ididentificador (UUID)Identificador único (UUID).
tiposDocumento[].descricaotextoA descrição.
tiposDocumento[].categoriatexto
tiposDocumento[].naturezaDocumentotexto
tiposDocumento[].movimentaEstoqueverdadeiro/falso
tiposDocumento[].tipoMovimentoDocumentotexto
tiposDocumento[].contaCorrenteverdadeiro/falso
tiposDocumento[].siglaDocumentotextoA sigla do tipo («FT», «FR», «NC»…).
tiposDocumento[].tipoLancamentoClientetexto ou nulo
tiposDocumento[].categoriaSafttexto
tiposDocumento[].requerAssinaturaverdadeiro/falso
metodosPagamentolista de objectos
metodosPagamento[].ididentificador (UUID)Identificador único (UUID).
metodosPagamento[].descricaotextoA descrição.
metodosPagamento[].tipoLancamentotextoCredito (dinheiro a entrar) ou Debito.
metodosPagamento[].pedirComprovativoverdadeiro/falso
metodosPagamento[].aceitaContaCorrenteverdadeiro/falso
metodosPagamento[].activoverdadeiro/falsoSe está activo.
impostoslista de objectos
impostos[].ididentificador (UUID)Identificador único (UUID).
impostos[].descricaotextoA descrição.
impostos[].taxanúmeroA taxa, em percentagem.
impostos[].tipoTaxatexto ou nuloO tipo de taxa (Normal, Isenta…).
taxasRetencaolista de objectos
taxasRetencao[].ididentificador (UUID)Identificador único (UUID).
taxasRetencao[].descricaotextoA descrição.
taxasRetencao[].taxanúmeroA taxa, em percentagem.
taxasRetencao[].normaAplicaveltexto ou nulo
motivosIsencaoIvalista de objectos
motivosIsencaoIva[].ididentificador (UUID)Identificador único (UUID).
motivosIsencaoIva[].codigoInternotextoO código interno do artigo.
motivosIsencaoIva[].motivotexto
motivosIsencaoIva[].mencaoFacturatexto ou nulo
motivosIsencaoIva[].normaLegalAplicaveltexto ou nulo
provinciaslista de objectos
provincias[].ididentificador (UUID)Identificador único (UUID).
provincias[].nometextoO nome.
municipioslista de objectos
municipios[].ididentificador (UUID)Identificador único (UUID).
municipios[].provinciaIdidentificador (UUID)
municipios[].nometextoO nome.
regimesFiscaislista de objectos
regimesFiscais[].ididentificador (UUID)Identificador único (UUID).
regimesFiscais[].descricaotextoA descrição.
regimesFiscais[].cobrarIvaverdadeiro/falso
regimesFiscais[].taxaSobreFacturacaonúmero ou nulo

Exemplo

Os catálogos fiscais (versão, tipos, métodos, impostos, retenções, isenções, províncias…)

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

{
  "versao": 1,
  "tiposDocumento": [
    {
      "id": "2a6a1e94-6e0d-4b8e-9f42-8f6a2f0c7b41",
      "descricao": "Factura",
      "categoria": "Financeiros",
      "naturezaDocumento": "AReceberDebita",
      "movimentaEstoque": true,
      "tipoMovimentoDocumento": "Saida",
      "contaCorrente": true,
      "siglaDocumento": "FT",
      "tipoLancamentoCliente": "Debito",
      "categoriaSaft": "SalesInvoices",
      "requerAssinatura": true
    },
    {
      "id": "8c1b5e2a-3f7d-4a6e-8b0a-1d5c7e9f3a63",
      "descricao": "Factura Pro-Forma",
      "categoria": "Cotacao",
      "naturezaDocumento": "SemInfluencia",
      "movimentaEstoque": false,
      "tipoMovimentoDocumento": "Nenhum",
      "contaCorrente": false,
      "siglaDocumento": "PP",
      "tipoLancamentoCliente": null,
      "categoriaSaft": "WorkingDocuments",
      "requerAssinatura": true
    },
    {
      "id": "6d3f9c9b-6d0a-4e4d-9a9a-2c9f8b1e4d52",
      "descricao": "Factura/Recibo",
      "categoria": "Financeiros",
      "naturezaDocumento": "AReceberDebita",
      "movimentaEstoque": true,
      "tipoMovimentoDocumento": "Saida",
      "contaCorrente": false,
      "siglaDocumento": "FR",
      "tipoLancamentoCliente": null,
      "categoriaSaft": "SalesInvoices",
      "requerAssinatura": true
    },
    {
      "id": "e5c9f6a4-7d86-4b2a-9f43-9a5d1c6e8b32",
      "descricao": "Guia de Devolução",
      "categoria": "Transporte",
      "naturezaDocumento": "SemInfluencia",
      "movimentaEstoque": true,
      "tipoMovimentoDocumento": "EntradaDevolucao",
      "contaCorrente": false,
      "siglaDocumento": "GD",
      "tipoLancamentoCliente": null,
      "categoriaSaft": "MovementOfGoods",
      "requerAssinatura": true
    },
    {
      "id": "c1a7d3e2-5b64-4f08-9d21-7e3b9a4c6f10",
      "descricao": "Guia de Remessa",
      "categoria": "Transporte",
      "naturezaDocumento": "SemInfluencia",
  …
GET/api/impostos#

As taxas de imposto (IVA) que um artigo pode ter.

  • Permissão Impostos.Ler

Resposta (200 · JSON)

CampoTipoSignificado
[].ididentificador (UUID)Identificador único (UUID).
[].descricaotextoA descrição.
[].taxanúmeroA taxa, em percentagem.
[].tipoTaxatexto ou nuloO tipo de taxa (Normal, Isenta…).

Exemplo

Os impostos (taxas de IVA) disponíveis

Pedido
curl 'https://<endereço-da-API>/api/impostos' \
  -H 'X-Api-Key: assw_v1_<chave>'
Pedido
const resposta = await fetch('https://<endereço-da-API>/api/impostos', {
  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/impostos',
    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/impostos");
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": "1a53887e-ada8-46e0-8be6-8c6c7ae76448",
    "descricao": "Isento",
    "taxa": 0,
    "tipoTaxa": "Isenta"
  },
  {
    "id": "b7edba48-0b89-4b3a-b4fb-b2781f4b9806",
    "descricao": "IVA (2%)",
    "taxa": 2,
    "tipoTaxa": "Normal"
  },
  {
    "id": "1993a038-6d88-4d81-92a8-557724e568d7",
    "descricao": "IVA (5%)",
    "taxa": 5,
    "tipoTaxa": "Normal"
  },
  {
    "id": "b3177307-1d27-4809-8989-8137fc0f9190",
    "descricao": "IVA (7%)",
    "taxa": 7,
    "tipoTaxa": "Normal"
  },
  {
    "id": "962b1189-25af-4864-bd7b-495a30abbc65",
    "descricao": "IVA (14%)",
    "taxa": 14,
    "tipoTaxa": "Normal"
  }
]
GET/api/moedas#

As moedas registadas na empresa.

  • Permissão Moedas.Ler

Os documentos emitidos pela API são sempre em Kwanzas (AOA); a moeda estrangeira não se usa nos documentos.

Parâmetros

NomeOndeTipoObrigatório
apenasActivasna pesquisaverdadeiro/falso

Resposta (200 · JSON)

CampoTipoSignificado
[].ididentificador (UUID)Identificador único (UUID).
[].codigotextoO código curto.
[].nometextoO nome.
[].simbolotexto
[].activoverdadeiro/falsoSe está activo.

Pedido

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

Os métodos de pagamento (numerário, Multicaixa, transferência…). O id é o que se envia nos pagamentos.

  • Permissão MetodosPagamento.Ler

pedirComprovativo diz se o método costuma ter número de operação bancária (é sempre opcional enviá-lo).

aceitaContaCorrente marca o método «Conta Corrente»: é uma dívida, não dinheiro a entrar, e só serve a clientes com conta corrente.

Parâmetros

NomeOndeTipoObrigatório
apenasActivosna pesquisaverdadeiro/falso

Resposta (200 · JSON)

CampoTipoSignificado
[].ididentificador (UUID)Identificador único (UUID).
[].descricaotextoA descrição.
[].tipoLancamentotextoCredito (dinheiro a entrar) ou Debito.
[].pedirComprovativoverdadeiro/falso
[].aceitaContaCorrenteverdadeiro/falso
[].activoverdadeiro/falsoSe está activo.

Exemplo

Os métodos de pagamento

Pedido
curl 'https://<endereço-da-API>/api/metodos-pagamento' \
  -H 'X-Api-Key: assw_v1_<chave>'
Pedido
const resposta = await fetch('https://<endereço-da-API>/api/metodos-pagamento', {
  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/metodos-pagamento',
    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/metodos-pagamento");
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": "eac54012-cede-4eb6-b2f5-f23459bc9ac2",
    "descricao": "Multicaixa",
    "tipoLancamento": "Credito",
    "pedirComprovativo": true,
    "aceitaContaCorrente": false,
    "activo": true
  },
  {
    "id": "9dde532b-0092-4a68-b2dc-18649f0c97c4",
    "descricao": "Numerário",
    "tipoLancamento": "Credito",
    "pedirComprovativo": false,
    "aceitaContaCorrente": false,
    "activo": true
  },
  {
    "id": "1fe6ebd7-682b-4297-a89f-876506fe18e4",
    "descricao": "Transferência Bancária",
    "tipoLancamento": "Credito",
    "pedirComprovativo": true,
    "aceitaContaCorrente": false,
    "activo": true
  }
]
GET/api/documentos/tipos#

Os tipos de documento que a empresa pode emitir. O id de cada um é o tipoDocumentoId dos pedidos de emissão.

  • Permissão Documentos.Ler

siglaDocumento é a abreviatura que se vê no número («FR LC2026/25»). Ver Documentos fiscais para o que cada tipo faz.

Resposta (200 · JSON)

CampoTipoSignificado
[].ididentificador (UUID)Identificador único (UUID).
[].descricaotextoA descrição.
[].categoriatexto
[].naturezaDocumentotexto
[].movimentaEstoqueverdadeiro/falso
[].tipoMovimentoDocumentotexto
[].contaCorrenteverdadeiro/falso
[].siglaDocumentotextoA sigla do tipo («FT», «FR», «NC»…).
[].tipoLancamentoClientetexto ou nulo
[].categoriaSafttexto
[].requerAssinaturaverdadeiro/falso

Exemplo

Os tipos de documento (o Id de cada um é o que se envia ao emitir)

Pedido
curl 'https://<endereço-da-API>/api/documentos/tipos' \
  -H 'X-Api-Key: assw_v1_<chave>'
Pedido
const resposta = await fetch('https://<endereço-da-API>/api/documentos/tipos', {
  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/documentos/tipos',
    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/documentos/tipos");
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": "2a6a1e94-6e0d-4b8e-9f42-8f6a2f0c7b41",
    "descricao": "Factura",
    "categoria": "Financeiros",
    "naturezaDocumento": "AReceberDebita",
    "movimentaEstoque": true,
    "tipoMovimentoDocumento": "Saida",
    "contaCorrente": true,
    "siglaDocumento": "FT",
    "tipoLancamentoCliente": "Debito",
    "categoriaSaft": "SalesInvoices",
    "requerAssinatura": true
  },
  {
    "id": "8c1b5e2a-3f7d-4a6e-8b0a-1d5c7e9f3a63",
    "descricao": "Factura Pro-Forma",
    "categoria": "Cotacao",
    "naturezaDocumento": "SemInfluencia",
    "movimentaEstoque": false,
    "tipoMovimentoDocumento": "Nenhum",
    "contaCorrente": false,
    "siglaDocumento": "PP",
    "tipoLancamentoCliente": null,
    "categoriaSaft": "WorkingDocuments",
    "requerAssinatura": true
  },
  {
    "id": "6d3f9c9b-6d0a-4e4d-9a9a-2c9f8b1e4d52",
    "descricao": "Factura/Recibo",
    "categoria": "Financeiros",
    "naturezaDocumento": "AReceberDebita",
    "movimentaEstoque": true,
    "tipoMovimentoDocumento": "Saida",
    "contaCorrente": false,
    "siglaDocumento": "FR",
    "tipoLancamentoCliente": null,
    "categoriaSaft": "SalesInvoices",
    "requerAssinatura": true
  },
  {
    "id": "e5c9f6a4-7d86-4b2a-9f43-9a5d1c6e8b32",
    "descricao": "Guia de Devolução",
    "categoria": "Transporte",
    "naturezaDocumento": "SemInfluencia",
    "movimentaEstoque": true,
    "tipoMovimentoDocumento": "EntradaDevolucao",
    "contaCorrente": false,
    "siglaDocumento": "GD",
    "tipoLancamentoCliente": null,
    "categoriaSaft": "MovementOfGoods",
    "requerAssinatura": true
  },
  {
    "id": "c1a7d3e2-5b64-4f08-9d21-7e3b9a4c6f10",
    "descricao": "Guia de Remessa",
    "categoria": "Transporte",
    "naturezaDocumento": "SemInfluencia",
    "movimentaEstoque": true,
    "tipoMovimentoDocumento": "Saida",
  …
GET/api/documentos/series#

As séries de numeração de cada tipo de documento, por estabelecimento.

  • Permissão Empresa.Ler

A numeração é atribuída pelo servidor; esta lista serve só para a mostrar ou conferir.

Resposta (200 · JSON)

CampoTipoSignificado
[].lojaIdidentificador (UUID)O estabelecimento.
[].lojaNometexto
[].tipoDocumentoIdidentificador (UUID)O tipo do documento (ver /api/documentos/tipos).
[].tipoDocumentoSiglatexto
[].tipoDocumentoDescricaotexto
[].serieConfiguradatexto ou nulo
[].serieEfectivatexto

Pedido

curl
curl 'https://<endereço-da-API>/api/documentos/series' \
  -H 'X-Api-Key: <a-sua-chave>'
GET/api/produtos/catalogos/{tipo}#

As listas de apoio do cadastro de artigos: categorias, unidades, marcas, modelos, fabricantes e tamanhos.

  • Permissão Produtos.Ler

tipo é um de: Categoria, Unidade, Marca, Modelo, Fabricante, Tamanho.

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

Parâmetros

NomeOndeTipoObrigatório
tipono caminhouma de: «Categoria», «Unidade», «Marca», «Modelo», «Fabricante», «Tamanho»sim
apenasActivosna pesquisaverdadeiro/falso
cursorna pesquisatexto
tamanhona pesquisanúmero inteiro

Resposta (200 · JSON)

CampoTipoSignificado
itenslista de objectosOs registos desta página.
itens[].ididentificador (UUID)Identificador único (UUID).
itens[].nometextoO nome.
itens[].activoverdadeiro/falsoSe está activo.
proximoCursortexto ou nuloO cursor da página seguinte; nulo quando não há mais. Ver Paginação.

Exemplo

As unidades de medida

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

{
  "itens": [
    {
      "id": "01a12201-f969-785e-b6a8-718aebff0344",
      "nome": "Caixa",
      "activo": true
    },
    {
      "id": "01a12201-f979-72d2-80cd-81d98a27db58",
      "nome": "Litro",
      "activo": true
    },
    {
      "id": "01a12201-f95a-7cca-a7c3-2268cd25e9c4",
      "nome": "Quilograma",
      "activo": true
    }
  ],
  "proximoCursor": "UXVpbG9ncmFtYSAwMWExMjIwMS1mOTVhLTdjY2EtYTdjMy0yMjY4Y2QyNWU5YzQ="
}
GET/api/condicoes-pagamento#

As condições de pagamento da empresa: o prazo para pagar uma factura a crédito.

  • Permissão Documentos.Ler

apenasActivas (por omissão verdadeiro) esconde as desactivadas.

Parâmetros

NomeOndeTipoObrigatório
apenasActivasna pesquisaverdadeiro/falso

Resposta (200 · JSON)

CampoTipoSignificado
[].ididentificador (UUID)Identificador único (UUID).
[].nometextoO nome.
[].diasnúmero inteiro
[].activaverdadeiro/falso
[].porOmissaoverdadeiro/falso

Pedido

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

Cria uma condição de pagamento.

  • Permissão Configuracao.Editar
  • Idempotência aceita Idempotency-Key

Devolve o id.

Corpo do pedido (JSON · CriarCondicaoDePagamentoCommand)

CampoTipoObrigatórioSignificado
nometextosimO nome.
diasnúmero inteirosim

Pedido

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

Altera uma condição de pagamento.

  • Permissão Configuracao.Editar

Parâmetros

NomeOndeTipoObrigatório
idno caminhoidentificador (UUID)sim

Corpo do pedido (JSON · EditarCondicaoDePagamentoRequest)

CampoTipoObrigatórioSignificado
nometextosimO nome.
diasnúmero inteirosim
activaverdadeiro/falsosim
porOmissaoverdadeiro/falsosim

Pedido

curl
curl -X PUT 'https://<endereço-da-API>/api/condicoes-pagamento/<id>' \
  -H 'X-Api-Key: <a-sua-chave>' \
  -H 'Content-Type: application/json' \
  -d '{
  "nome": "texto",
  "dias": 1,
  "activa": false,
  "porOmissao": false
}'
GET/api/taxas-retencao#

As taxas de retenção na fonte que um artigo ou um cliente pode ter.

  • Permissão TaxasRetencao.Ler

Resposta (200 · JSON)

CampoTipoSignificado
[].ididentificador (UUID)Identificador único (UUID).
[].descricaotextoA descrição.
[].taxanúmeroA taxa, em percentagem.
[].normaAplicaveltexto ou nulo

Pedido

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

Os motivos de isenção de IVA (os códigos legais) que um artigo isento tem de indicar.

  • Permissão MotivosIva.Ler

Resposta (200 · JSON)

CampoTipoSignificado
[].ididentificador (UUID)Identificador único (UUID).
[].codigoInternotextoO código interno do artigo.
[].motivotexto
[].mencaoFacturatexto ou nulo
[].normaLegalAplicaveltexto ou nulo

Pedido

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

As províncias de Angola.

  • Permissão Geografia.Ler

Resposta (200 · JSON)

CampoTipoSignificado
[].ididentificador (UUID)Identificador único (UUID).
[].nometextoO nome.

Pedido

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

Os municípios de Angola.

  • Permissão Geografia.Ler

provinciaId filtra por província.

Parâmetros

NomeOndeTipoObrigatório
provinciaIdna pesquisaidentificador (UUID)

Resposta (200 · JSON)

CampoTipoSignificado
[].ididentificador (UUID)Identificador único (UUID).
[].provinciaIdidentificador (UUID)
[].nometextoO nome.

Pedido

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