insert

Disponível na versão: 1.13+

Insere uma nova fatura simplificada de fornecedor.

Os campos financial_discount 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 conjunto taxes 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 conjunto associated_documents, têm de pertencer a documentos cujo tipo possa ser associado com faturas simplificadas 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 simplificada de fornecedor com o estado fechado, os documentos associados, caso existam, serão conciliados com os valores definidos.

As faturas simplificadas de fornecedor têm regras específicas quanto ao valor total; se uma fatura simplificada for inserida no estado fechado, e o valor total for superior ao limite de 1000€, a fatura simplificada de fornecedor não será inserida e será devolvido um erro relativo ao valor total.

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 simplificada 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 endpointproducts/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_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". 

Pedido

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

Parâmetros
company_id int

Obrigatório

date date

Obrigatório

expiration_date date

Obrigatório

maturity_date_id int
document_set_id int

Obrigatório

supplier_id int

Obrigatório

our_reference string
your_reference string
financial_discount float
special_discount float
associated_documents array
associated_id int

Obrigatório

value float

Obrigatório

related_documents_notes string
products array

Obrigatório

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
exemption_reason string
warehouse_id 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
properties array
title string
value string
taxes array
tax_id int

Obrigatório

value float
order int
cumulative int
payments array
payment_method_id int

Obrigatório

date datetime

Obrigatório

value float

Obrigatório

notes string
exchange_currency_id int
exchange_rate float
delivery_method_id int
delivery_datetime date
delivery_departure_address string
delivery_departure_city string
delivery_departure_zip_code string
delivery_departure_country int
delivery_destination_address string
delivery_destination_city string
delivery_destination_zip_code string
delivery_destination_country int
vehicle_id int
vehicle_name string
vehicle_number_plate string
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