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ção | O que faz |
|---|---|
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. |
GET /api/impostos | As taxas de imposto (IVA) que um artigo pode ter. |
GET /api/moedas | As moedas registadas na empresa. |
GET /api/metodos-pagamento | Os métodos de pagamento (numerário, Multicaixa, transferência…). O id é o que se envia nos pagamentos. |
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. |
GET /api/documentos/series | As 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-pagamento | As condições de pagamento da empresa: o prazo para pagar uma factura a crédito. |
POST /api/condicoes-pagamento | Cria uma condição de pagamento. |
PUT /api/condicoes-pagamento/{id} | Altera uma condição de pagamento. |
GET /api/taxas-retencao | As taxas de retenção na fonte que um artigo ou um cliente pode ter. |
GET /api/motivos-isencao-iva | Os motivos de isenção de IVA (os códigos legais) que um artigo isento tem de indicar. |
GET /api/provincias | As províncias de Angola. |
GET /api/municipios | Os municípios de Angola. |
/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.
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)
| Campo | Tipo | Significado |
|---|---|---|
versao | número inteiro | |
tiposDocumento | lista de objectos | |
tiposDocumento[].id | identificador (UUID) | Identificador único (UUID). |
tiposDocumento[].descricao | texto | A descrição. |
tiposDocumento[].categoria | texto | |
tiposDocumento[].naturezaDocumento | texto | |
tiposDocumento[].movimentaEstoque | verdadeiro/falso | |
tiposDocumento[].tipoMovimentoDocumento | texto | |
tiposDocumento[].contaCorrente | verdadeiro/falso | |
tiposDocumento[].siglaDocumento | texto | A sigla do tipo («FT», «FR», «NC»…). |
tiposDocumento[].tipoLancamentoCliente | texto ou nulo | |
tiposDocumento[].categoriaSaft | texto | |
tiposDocumento[].requerAssinatura | verdadeiro/falso | |
metodosPagamento | lista de objectos | |
metodosPagamento[].id | identificador (UUID) | Identificador único (UUID). |
metodosPagamento[].descricao | texto | A descrição. |
metodosPagamento[].tipoLancamento | texto | Credito (dinheiro a entrar) ou Debito. |
metodosPagamento[].pedirComprovativo | verdadeiro/falso | |
metodosPagamento[].aceitaContaCorrente | verdadeiro/falso | |
metodosPagamento[].activo | verdadeiro/falso | Se está activo. |
impostos | lista de objectos | |
impostos[].id | identificador (UUID) | Identificador único (UUID). |
impostos[].descricao | texto | A descrição. |
impostos[].taxa | número | A taxa, em percentagem. |
impostos[].tipoTaxa | texto ou nulo | O tipo de taxa (Normal, Isenta…). |
taxasRetencao | lista de objectos | |
taxasRetencao[].id | identificador (UUID) | Identificador único (UUID). |
taxasRetencao[].descricao | texto | A descrição. |
taxasRetencao[].taxa | número | A taxa, em percentagem. |
taxasRetencao[].normaAplicavel | texto ou nulo | |
motivosIsencaoIva | lista de objectos | |
motivosIsencaoIva[].id | identificador (UUID) | Identificador único (UUID). |
motivosIsencaoIva[].codigoInterno | texto | O código interno do artigo. |
motivosIsencaoIva[].motivo | texto | |
motivosIsencaoIva[].mencaoFactura | texto ou nulo | |
motivosIsencaoIva[].normaLegalAplicavel | texto ou nulo | |
provincias | lista de objectos | |
provincias[].id | identificador (UUID) | Identificador único (UUID). |
provincias[].nome | texto | O nome. |
municipios | lista de objectos | |
municipios[].id | identificador (UUID) | Identificador único (UUID). |
municipios[].provinciaId | identificador (UUID) | |
municipios[].nome | texto | O nome. |
regimesFiscais | lista de objectos | |
regimesFiscais[].id | identificador (UUID) | Identificador único (UUID). |
regimesFiscais[].descricao | texto | A descrição. |
regimesFiscais[].cobrarIva | verdadeiro/falso | |
regimesFiscais[].taxaSobreFacturacao | número ou nulo |
Exemplo
Os catálogos fiscais (versão, tipos, métodos, impostos, retenções, isenções, províncias…)
curl 'https://<endereço-da-API>/api/catalogos' \
-H 'X-Api-Key: assw_v1_<chave>'
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()
import requests
resposta = requests.get(
'https://<endereço-da-API>/api/catalogos',
headers={
'X-Api-Key': 'assw_v1_<chave>'
},
)
dados = resposta.json()
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
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",
…
/api/impostos#As taxas de imposto (IVA) que um artigo pode ter.
Resposta (200 · JSON)
| Campo | Tipo | Significado |
|---|---|---|
[].id | identificador (UUID) | Identificador único (UUID). |
[].descricao | texto | A descrição. |
[].taxa | número | A taxa, em percentagem. |
[].tipoTaxa | texto ou nulo | O tipo de taxa (Normal, Isenta…). |
Exemplo
Os impostos (taxas de IVA) disponíveis
curl 'https://<endereço-da-API>/api/impostos' \
-H 'X-Api-Key: assw_v1_<chave>'
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()
import requests
resposta = requests.get(
'https://<endereço-da-API>/api/impostos',
headers={
'X-Api-Key': 'assw_v1_<chave>'
},
)
dados = resposta.json()
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
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"
}
]
/api/moedas#As moedas registadas na empresa.
Os documentos emitidos pela API são sempre em Kwanzas (AOA); a moeda estrangeira não se usa nos documentos.
Parâmetros
| Nome | Onde | Tipo | Obrigatório |
|---|---|---|---|
apenasActivas | na pesquisa | verdadeiro/falso |
Resposta (200 · JSON)
| Campo | Tipo | Significado |
|---|---|---|
[].id | identificador (UUID) | Identificador único (UUID). |
[].codigo | texto | O código curto. |
[].nome | texto | O nome. |
[].simbolo | texto | |
[].activo | verdadeiro/falso | Se está activo. |
Pedido
curl 'https://<endereço-da-API>/api/moedas' \
-H 'X-Api-Key: <a-sua-chave>'
/api/metodos-pagamento#Os métodos de pagamento (numerário, Multicaixa, transferência…). O id é o que se envia nos pagamentos.
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
| Nome | Onde | Tipo | Obrigatório |
|---|---|---|---|
apenasActivos | na pesquisa | verdadeiro/falso |
Resposta (200 · JSON)
| Campo | Tipo | Significado |
|---|---|---|
[].id | identificador (UUID) | Identificador único (UUID). |
[].descricao | texto | A descrição. |
[].tipoLancamento | texto | Credito (dinheiro a entrar) ou Debito. |
[].pedirComprovativo | verdadeiro/falso | |
[].aceitaContaCorrente | verdadeiro/falso | |
[].activo | verdadeiro/falso | Se está activo. |
Exemplo
Os métodos de pagamento
curl 'https://<endereço-da-API>/api/metodos-pagamento' \
-H 'X-Api-Key: assw_v1_<chave>'
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()
import requests
resposta = requests.get(
'https://<endereço-da-API>/api/metodos-pagamento',
headers={
'X-Api-Key': 'assw_v1_<chave>'
},
)
dados = resposta.json()
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
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
}
]
/api/documentos/tipos#Os tipos de documento que a empresa pode emitir. O id de cada um é o tipoDocumentoId dos pedidos de emissão.
siglaDocumento é a abreviatura que se vê no número («FR LC2026/25»). Ver Documentos fiscais para o que cada tipo faz.
Resposta (200 · JSON)
| Campo | Tipo | Significado |
|---|---|---|
[].id | identificador (UUID) | Identificador único (UUID). |
[].descricao | texto | A descrição. |
[].categoria | texto | |
[].naturezaDocumento | texto | |
[].movimentaEstoque | verdadeiro/falso | |
[].tipoMovimentoDocumento | texto | |
[].contaCorrente | verdadeiro/falso | |
[].siglaDocumento | texto | A sigla do tipo («FT», «FR», «NC»…). |
[].tipoLancamentoCliente | texto ou nulo | |
[].categoriaSaft | texto | |
[].requerAssinatura | verdadeiro/falso |
Exemplo
Os tipos de documento (o Id de cada um é o que se envia ao emitir)
curl 'https://<endereço-da-API>/api/documentos/tipos' \
-H 'X-Api-Key: assw_v1_<chave>'
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()
import requests
resposta = requests.get(
'https://<endereço-da-API>/api/documentos/tipos',
headers={
'X-Api-Key': 'assw_v1_<chave>'
},
)
dados = resposta.json()
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
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",
…
/api/documentos/series#As séries de numeração de cada tipo de documento, por estabelecimento.
A numeração é atribuída pelo servidor; esta lista serve só para a mostrar ou conferir.
Resposta (200 · JSON)
| Campo | Tipo | Significado |
|---|---|---|
[].lojaId | identificador (UUID) | O estabelecimento. |
[].lojaNome | texto | |
[].tipoDocumentoId | identificador (UUID) | O tipo do documento (ver /api/documentos/tipos). |
[].tipoDocumentoSigla | texto | |
[].tipoDocumentoDescricao | texto | |
[].serieConfigurada | texto ou nulo | |
[].serieEfectiva | texto |
Pedido
curl 'https://<endereço-da-API>/api/documentos/series' \
-H 'X-Api-Key: <a-sua-chave>'
/api/produtos/catalogos/{tipo}#As listas de apoio do cadastro de artigos: categorias, unidades, marcas, modelos, fabricantes e tamanhos.
tipo é um de: Categoria, Unidade, Marca, Modelo, Fabricante, Tamanho.
A resposta é uma página: itens e proximoCursor. Ver Paginação.
Parâmetros
| Nome | Onde | Tipo | Obrigatório |
|---|---|---|---|
tipo | no caminho | uma de: «Categoria», «Unidade», «Marca», «Modelo», «Fabricante», «Tamanho» | sim |
apenasActivos | na pesquisa | verdadeiro/falso | |
cursor | na pesquisa | texto | |
tamanho | na pesquisa | número inteiro |
Resposta (200 · JSON)
| Campo | Tipo | Significado |
|---|---|---|
itens | lista de objectos | Os registos desta página. |
itens[].id | identificador (UUID) | Identificador único (UUID). |
itens[].nome | texto | O nome. |
itens[].activo | verdadeiro/falso | Se está activo. |
proximoCursor | texto ou nulo | O cursor da página seguinte; nulo quando não há mais. Ver Paginação. |
Exemplo
As unidades de medida
curl 'https://<endereço-da-API>/api/produtos/catalogos/Unidade?tamanho=3' \
-H 'X-Api-Key: assw_v1_<chave>'
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()
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()
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
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="
}
/api/condicoes-pagamento#As condições de pagamento da empresa: o prazo para pagar uma factura a crédito.
apenasActivas (por omissão verdadeiro) esconde as desactivadas.
Parâmetros
| Nome | Onde | Tipo | Obrigatório |
|---|---|---|---|
apenasActivas | na pesquisa | verdadeiro/falso |
Resposta (200 · JSON)
| Campo | Tipo | Significado |
|---|---|---|
[].id | identificador (UUID) | Identificador único (UUID). |
[].nome | texto | O nome. |
[].dias | número inteiro | |
[].activa | verdadeiro/falso | |
[].porOmissao | verdadeiro/falso |
Pedido
curl 'https://<endereço-da-API>/api/condicoes-pagamento' \
-H 'X-Api-Key: <a-sua-chave>'
/api/condicoes-pagamento#Cria uma condição de pagamento.
Devolve o id.
Corpo do pedido (JSON · CriarCondicaoDePagamentoCommand)
| Campo | Tipo | Obrigatório | Significado |
|---|---|---|---|
nome | texto | sim | O nome. |
dias | número inteiro | sim |
Pedido
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
}'
/api/condicoes-pagamento/{id}#Altera uma condição de pagamento.
Parâmetros
| Nome | Onde | Tipo | Obrigatório |
|---|---|---|---|
id | no caminho | identificador (UUID) | sim |
Corpo do pedido (JSON · EditarCondicaoDePagamentoRequest)
| Campo | Tipo | Obrigatório | Significado |
|---|---|---|---|
nome | texto | sim | O nome. |
dias | número inteiro | sim | |
activa | verdadeiro/falso | sim | |
porOmissao | verdadeiro/falso | sim |
Pedido
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
}'
/api/taxas-retencao#As taxas de retenção na fonte que um artigo ou um cliente pode ter.
Resposta (200 · JSON)
| Campo | Tipo | Significado |
|---|---|---|
[].id | identificador (UUID) | Identificador único (UUID). |
[].descricao | texto | A descrição. |
[].taxa | número | A taxa, em percentagem. |
[].normaAplicavel | texto ou nulo |
Pedido
curl 'https://<endereço-da-API>/api/taxas-retencao' \
-H 'X-Api-Key: <a-sua-chave>'
/api/motivos-isencao-iva#Os motivos de isenção de IVA (os códigos legais) que um artigo isento tem de indicar.
Resposta (200 · JSON)
| Campo | Tipo | Significado |
|---|---|---|
[].id | identificador (UUID) | Identificador único (UUID). |
[].codigoInterno | texto | O código interno do artigo. |
[].motivo | texto | |
[].mencaoFactura | texto ou nulo | |
[].normaLegalAplicavel | texto ou nulo |
Pedido
curl 'https://<endereço-da-API>/api/motivos-isencao-iva' \
-H 'X-Api-Key: <a-sua-chave>'
/api/provincias#As províncias de Angola.
Resposta (200 · JSON)
| Campo | Tipo | Significado |
|---|---|---|
[].id | identificador (UUID) | Identificador único (UUID). |
[].nome | texto | O nome. |
Pedido
curl 'https://<endereço-da-API>/api/provincias' \
-H 'X-Api-Key: <a-sua-chave>'
/api/municipios#Os municípios de Angola.
provinciaId filtra por província.
Parâmetros
| Nome | Onde | Tipo | Obrigatório |
|---|---|---|---|
provinciaId | na pesquisa | identificador (UUID) |
Resposta (200 · JSON)
| Campo | Tipo | Significado |
|---|---|---|
[].id | identificador (UUID) | Identificador único (UUID). |
[].provinciaId | identificador (UUID) | |
[].nome | texto | O nome. |
Pedido
curl 'https://<endereço-da-API>/api/municipios' \
-H 'X-Api-Key: <a-sua-chave>'