insert

Disponível na versão: 1.0+

Insere uma nova nota de crédito.

Os campos financial_discount, salesman_commission e ainda o campo discount de cada elemento do conjunto products, caso sejam preenchidos, devem ser valores em percentagem, de 0 a 100.

O campo exemption_reason de cada elemento do conjunto products torna-se obrigatório caso o conjunto taxes esteja vazio, não contenha elementos cujo imposto correspondente seja do tipo IVA ou que estes tenham valor zero.

Caso a empresa só tenha um CAE e o eac_id não for enviado, ou o que tenha sido enviado seja inválido, o eac_id será automaticamente preenchido com o único CAE existente. Caso a empresa tenha mais do que um CAE, este será mantido em branco.

O campo value de cada elemento dos conjuntos taxes existentes torna-se obrigatório caso o imposto definido por tax_id seja um imposto cujo valor seja definido por artigo.

O campo deduction_id, até agora existente no document, foi depreciado, e será removido da API futuramente. Recomenda-se que se passe a usar a deduction_id nos elementos da estrutura products. Durante esta fase de transição, se for enviado no document, será propagado a todos os elementos da estrutura products que não o tenham.

Todos os campos *_id apenas aceitam valores válidos. Esses valores podem ser consultados nos respectivos endpoints da API. No caso dos associated_id dos elementos do conjunto associated_documents, têm de pertencer a documentos cujo tipo possa ser associado com notas de crédito.

O campo status aceita os valores 0 (por defeito, caso não seja preenchido) e 1, que correspondem, respectivamente, aos estados de rascunho e fechado. Ao inserir uma nota de crédito com o estado fechado, os documentos associados, caso existam, serão conciliados com os valores definidos e será comunicada para a Autoridade Tributária, caso a empresa tenha essa opção activa.

Para criar documentos noutras moedas, os campos exchange_currency_id e exchange_rate devem ser preenchidos. O campo exchange_currency_id deverá ser preenchido com um id de moeda válido, que pode consultar no endpoint currencies/getAll. O campo exchange_rate deverá ser preenchido com o valor monetário apropriado. Pode consultar as tabelas de conversão que actualizamos todos os dias, no endpoint currencyExchange/getAll.

Ao fechar o documento, serão movimentados stocks, caso um ou mais dos seus artigos tenha gestão de stocks. Se a sua empresa tiver armazéns definidos, pode preencher o campo warehouse_id de cada artigo, para que o stock seja movimentado num armazém em concreto. Se não indicar qual o armazém, o stock será movimentado no armazém pré-definido do artigo ou, caso nenhum esteja pré-definido, no pré-definido da empresa.

Caso o artigo que está a tentar inserir seja um artigo composto, é preciso enviar a estrutura child_productsde cada artigo, que corresponde aos artigos"filhos". Se não enviar esta estrutura, o artigo "pai" é adicionado ao documento como um artigo normal. É preciso ter em atenção o seguinte:

 - Os artigos "filhos" deverão estar já configurados no moloni como sendo "filhos" do artigo composto. É obrigatório que os "filhos" pertençam ao "pai", mas não é obrigatório enviar todos os "filhos" de um "pai". 

 - O campo price do artigo "pai" deverá corresponder à soma dos preços dos artigos "filhos", por exemplo, um artigo filho com um price de 1.5 e qty de 2, terá que ter um "pai" com um price de 3 e qty de 1, ou price de 1.5 e qty de 2, de forma a que os totais sejam iguais.

 - Caso o artigo "pai" tenha descontos, os mesmos deverão ser aplicados aos "filhos", e não ao "pai". Se enviar descontos diferentes para cada "filho", no artigo "pai" é calculada a percentagem de desconto correcta sobre o total. 

 - As taxes deverão ser aplicadas aos artigos "filhos", sendo que depois serão replicadas no artigo "pai". 

 

Caso o parâmetro rappel não seja preenchido, torna-se obrigatório definir os documentos associados à Nota de Crédito (associated_documents) e o parâmetro related_id que deverá corresponder ao document_product_id de um dos artigos do documento associado. Neste caso, são feitas as seguintes validações: 

  • O total da NC não pode ser maior que o valor da conciliação
  • Cada artigo da NC deverá ter quantidade disponível no documento associado (Por exemplo, uma FT com uma unidade de um artigo não pode dar origem a duas NC com o mesmo artigo). 
  • O price de cada artigo da NC  não pode ser superior ao preço do artigo no documento associado
Pedido

https://api.moloni.pt/v1/creditNotes/insert/?access_token=[current_access_token]

Parâmetros
company_id int

Obrigatório

date date

Obrigatório

document_set_id int

Obrigatório

customer_id int

Obrigatório

alternate_address_id int
our_reference string
your_reference string
financial_discount float
salesman_id int
salesman_commission float
associated_documents array

Obrigatório

associated_id int

Obrigatório

value float

Obrigatório

rappel object
date_start date

Obrigatório

date_end date

Obrigatório

notes string
related_documents_notes string
products array

Obrigatório

product_id int

Obrigatório

related_idint

Obrigatório

name string

Obrigatório

summary string
qty float

Obrigatório

price float

Obrigatório

discount float
deduction_id int
order int
exemption_reason string
warehouse_id int
has_stock int
taxes array
tax_id int

Obrigatório

value float
order int
cumulative int
child_products array
product_id int

Obrigatório

name string

Obrigatório

summary string
qty float

Obrigatório

price float

Obrigatório

discount float
deduction_id int
order int
origin_id int
exemption_reason string
warehouse_id int
has_stock int
properties array
title string
value string
taxes array
tax_id int

Obrigatório

value float
order int
cumulative int
exchange_currency_id int
exchange_rate float
notes string
status int
Nota
- O parâmetro qty tem como default 50 e o offset 0, sendo que o máximo qty é 50;
- Campos de preenchimento facultativo, significa que podem ser uma string vazia ou zero, dependendo do respectivo tipo.
Resposta
{
	valid: 1,
	document_id: int
}
Lista de erros possíveis
Sempre que existir um erro no preenchimento dos campos, será devolvido via JSON o objeto com os erros indexado pela ordem dos campos.
As mensagens de erro, são devolvidas sob a forma de códigos, e para perceber quais os erros disponíveis e como interpretar as mensagens recebidas, consulte esta ligação.

© 2024 Moloni

Software de faturação online

Certificado pela Autoridade Tributária N.º 2860