Insere uma nova fatura de fornecedor.
Os campos financial_discount
e discount
de cada elemento do conjunto products
, caso sejam preenchidos, devem ser valores em percentagem, de 0 a 100.
O campo special_discount
, caso seja preenchido, deverá ser um valor monetário.
O campo exemption_reason
de cada elemento do conjunto products
torna-se obrigatório caso o conjuntotaxes
esteja vazio, não contenha elementos cujo imposto correspondente seja do tipo IVA ou que estes tenham valor zero.
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.
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 conjuntoassociated_documents
, têm de pertencer a documentos cujo tipo possa ser associado com faturas de fornecedor.
O campo maturity_date_id
é opcional, e deverá escolher um prazo de vencimento que se coadune com a data de vencimento enviada, tanto ao nível dos dias, como da descrição daquele. O prazo de vencimento é meramente apresentacional. Se não o enviar, a impressão do documento dirá "pronto pagamento", independentemente da data de vencimento.
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.
Os campos delivery_departure_country
e delivery_destination_country
apenas aceitam id de países válidos. Para além disso, se o país for Portugal (id 1), o código postal deve ser válido (4 dígitos, traço, 3 dígitos).
Pode enviar os campos vehicle_name e vehicle_number_plate para definir uma viatura de transporte sem a gravar na sua empresa. Se também enviar o campo vehicle_id, a viatura por este identificada será usada em vez daqueles campos.
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 fatura de fornecedor com o estado fechado, os documentos associados, caso existam, serão conciliados com os valores definidos.
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 contrário do que sucede na área de cliente, ao inserir uma fatura de fornecedor, os preços de compra para esse fornecedor não serão atualizados nos artigos. Deverá efetuar as alterações relevantes no respetivo endpoint, products/update
.
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_products
de 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".